我在 MATLAB 上使用 k-means。要处理有效的集群,它需要进行循环,直到集群位置不再改变。因此,循环超过 10 次迭代是可能的。而且可能需要很长时间。
所以,我想让用户设置迭代。示例:用户输入“3”进行迭代,然后迭代将持续到 3 次迭代。这是迭代过程的片段:
while 1,
d=DistMatrix3(data,c); % calculate the distance
[z,g]=min(d,[],2); % set the matrix g group
if g==temp, % if the iteration doesn't change anymore
break; % stop the iteration
else
temp=g; % copy the matrix to the temporary variable
end
for i=1:k
f=find(g==i);
if f % calculate the new centroid
c(i,:)=mean(data(find(g==i),:),1);
end
end
end
我所知道的是我必须定义一个变量来让用户输入迭代次数。该变量将用于循环/迭代过程。我已经尝试通过删除while 1
到for i=1:iteration
. 但它仍然不能像我想要的那样工作。有人知道怎么做吗?
所有的答案将不胜感激。
谢谢你。