因为网上有很多关于Kmeans现成代码,这里主要讲,如何对聚类信息进行提取(我前面博客给出过Kmeans的代码/matble)
我主要做的是子图分离,先通过Kmeans方法,分离出k个子图,要对子图进行图构建,就需要知道,每个聚类块里面所包含的具体信息。
其中用到胞元进行矩阵存储,下面也会举例胞元循环中的变化
1: 首先 label=Kmeans(fea,k) %label是每一个样本对应的聚类号 ;label中只包含1,2,3……,k,这k种数;
2:
A=cell(1,K); %A为胞元 \\后面有给示例
[mFea,nSmp]=size(fea);
labelA=[];
labelA=[(1:mFea)',label]; %构建一个矩阵labelA,第一列对应mFea,第二列对应label;从而建立起来label与mFea %一一对应关系
for i=1:K %i为聚类i,一共有k个聚类for j=1:mFea
if labelA[j,2]==i; %找出label=i所对应的行,
A{1,i}(j,:)=fea(j,:); %提取这一行的所有信息,并赋值给A{1,i}胞元中的对应行 \\后面有给示例
end
end
end