碰到这个问题,是因为matlab里面的kmeans函数默认情况下的迭代步骤是100次,而你可能是因为需要聚类的数据比较大,导致你的迭代了100步还不没有收敛。你可以通过以下命令查看参数信息:
help kmeans
下面是它的部分函数解释:
'Options' - Options for the iterative algorithm used to minimize the
fitting criterion, as created by STATSET. Choices of STATSET
parameters are:
'Display' - Level of display output. Choices are 'off', (the
default), 'iter', and 'final'.
'MaxIter' - Maximum number of iterations allowed. Default is 100.
解决办法:
在kmeans函数中添加参数设置,其中'Display' 显示迭代的步数,'MaxIter'设置迭代的步数:
opts = statset('Display','final','MaxIter',1000);
[idx, ctrs] = kmeans(Xl', k,'Options',opts);