load Data6; X=XX{1}; [mm,nn]=size(X); P=X'; clear XX group_num X; net = newsom([0 1; 0 1],[5 6]); plotsom(net.iw{1,1},net.layers{1}.distances) pause net.trainParam.epochs = 25; net.trainParam.show=1; net = train(net,P); plotsom(net.iw{1,1},net.layers{1}.distances) hold on plot(P(1,:),P(2,:),'k.'); hold off fprintf('Result of training\n\n'); pause voronoi(net.IW{1,1}(:,1),net.IW{1,1}(:,2)); hold on plot(P(1,:),P(2,:),'r.'); hold off fprintf('To find which cluster data belongs to, use sim\n\n'); echo on T=sim(net,P); T(:,1) T(:,2) echo off %How many data points are there per cluster? Total=zeros(30,1); for j=1:299 idx=find(T(:,j)~=0); Total(idx)=Total(idx)+1; end fprintf('The mean number of data points per cluster: %f\n',mean(Total)); fprintf('The theoretical mean number of data points per cluster: 299/30\n\n');