不能使用k-means聚集超过317行和列的方阵?

时间:2015-11-08 20:00:38

标签: matlab k-means

我有一个1750乘1750矩阵Y。我想用k-means将它聚类成50个簇。我的代码是:

[idx,C] = kmeans(Y,50)

但是,我一直收到错误:

  

使用kmeans时出错(第243行)
  X必须有比行数更多的行。

为什么呢?发生了什么事?

我缩小了矩阵的大小,通过反复试验,我发现错误直到矩阵大小为317×317才显示。除此之外,从318乘318以上,它开始抛出错误。

1 个答案:

答案 0 :(得分:0)

检查您的数据矩阵Y是否没有任何仅包含NaN值的列。您可以从第318列开始,因为您知道它的包含会导致错误。使用isnanall

all(isnan(Y(:,318))

您可以通过以下方式检查输入数据矩阵的所有列:

find(all(isNaN(Y)))

将返回所有NaN列的索引。