MATLAB - 标签K-means集群图

时间:2015-04-02 10:10:06

标签: matlab plot label k-means

我有一些数据

data = 16.9;23.8;11.3;5.8;9;2;8.6;7.3;2.6;0.3;0.9;2.7;1;8.7;4.5;0.4;2.8;8.9;0.4;5;2.7;8.4;3.9;8.8

我使用此代码进行了K-means聚类:

[idx2,C2] = kmeans(firstblik,2,'Distance','cityblock','Replicates',10);
figure;
plot(firstblik(idx2==1),'r.','MarkerSize',12)
hold on
plot(firstblik(idx2==2),'b.','MarkerSize',12)
legend('Cluster 1','Cluster 2','Location','NW')
hold off

idx2会自动将我的数据分为2组(1和2):

idx2 = [2;2;2;2;2;2;2;2;1;1;1;1;1;2;1;2;1;1;1;1;1;2;1;2]

我为每个数据点制作了一个标签矢量,我想在我的情节中显示它们。

我尝试使用通常的text()函数进行标记,但我的k-means图分为2:

我首先绘制所有1'然后是同一图中的所有2#

如果标签遵循与我的数据矩阵相同的顺序,我如何标记这些点?

感谢任何帮助

谢谢!

附加信息:我的情节被拆分为2,因为我已经提到text()函数不能正常工作,因为在绘制idx2时数据的顺序是不守恒的

1 个答案:

答案 0 :(得分:0)

[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
                                      'Replicates',3);

pixel_labels = reshape(cluster_idx,nrows,ncols);

imshow(pixel_labels,[]);