我正在尝试在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
答案 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
已经是一维数组。