matlab-kmeans函数注释
X = [randn(100,2)+ones(100,2);...
randn(100,2)-ones(100,2)]; 产生100个样本点,行指向每个样本,列是维变量值。
opts = statset('Display','final');
[idx,ctrs] = kmeans(X,2,'Distance','city','Replicates',5,'Options',opts);
%返回参数意义:[IDX,C,sumd,D]=kmeans()
IDX:每个样本点所在的类别
C:所聚类别的中心点坐标位置k*p,k是所聚类别
sumd:每个类内各点到中心点的距离之和
D:每个点到各类中心点的距离n*k
--------------------------------函数调用示例---------------------------
X = [randn(100,2)+ones(100,2);...
randn(100,2)-ones(100,2)]; %产生100个样本
opts = statset('Display','final');
[idx,ctrs] = kmeans(X,2,...
'Distance','city',...
'Replicates',5,...
'Options',opts); %调用Kmeans函数
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)% 画出聚类为1,的点。X(idx==1,1),为第一类的样本的第一个坐标;X(idx==1,2)为第二类的样本的第二个坐标
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)%X(idx==2,1),X(idx==2,2)样本为第二类的第一个坐标,样本为第二类的第二个坐标
plot(ctrs(:,1),ctrs(:,2),'kx',...
'MarkerSize',12,'LineWidth',2)%绘出聚类中心点,kx表示是圆形
plot(ctrs(:,1),ctrs(:,2),'ko',...
'MarkerSize',12,'LineWidth',2)%%绘出聚类中心点,ko表示是叉形
legend('Cluster 1','Cluster 2','Centroids','Location','NW')%添加文字说明