MATLAB标签K表示聚类图



我有一些数据

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自动将我的数据分为两组(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-均值图被拆分为2:

我首先在同一个图中绘制所有的1,然后绘制所有的2

考虑到标签的顺序与我的数据矩阵相同,我如何标记这些点?

非常感谢您的帮助

谢谢!

附加信息:我的绘图被拆分为2,所以正如我已经提到的,text()函数不起作用,因为在绘制idx2 时数据的顺序不守恒

[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
                                      'Replicates',3);
pixel_labels = reshape(cluster_idx,nrows,ncols);
imshow(pixel_labels,[]);

最新更新