为什么我的质心在MATLAB中使用k-means聚类位于图形轴上?

时间:2014-12-19 16:48:20

标签: matlab

我正在尝试在MATLAB中进行一个非常简单的k-means聚类,并且有一个732 x 1的数据集。我使用下面的代码生成图形但是,质心的位置保持着陆在y轴上没有任何意义。如果我只是在不使用C函数的情况下绘制hold,则质心似乎位于轴以外的位置。我无法弄清楚这里有什么问题。

这是我为重现我的问题所写的代码:

figure;
[idx,C,sumd,D] = kmeans(EnginePower,6,'start','uniform','Distance','cityblock','Replicates',10,'display','iter');

plot(C(:,1),'kx','MarkerSize',15,'LineWidth',3)
hold on
plot(Time(:,2),EnginePower,'.');
hold off

1 个答案:

答案 0 :(得分:0)

因为您的数据是1D,所以在 2D网格上绘制质心没有任何意义。您应该做的是在x轴上绘制所有数据(即保持y分量不变)。使用类似x = 0的内容来绘制质心和数据。因此,做这样的事情:

plot(C,0,'kx','MarkerSize',15,'LineWidth',3)    
hold on    
plot(EnginePower,0,'.');   
grid;
hold off

请注意,执行C(:,1)是多余的,因为C已经是一维数组。