Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-05-01, 21:22   #1
Dr.KenLo
初级会员
 
注册日期: 2009-05-01
帖子: 2
声望力: 0
Dr.KenLo 正向着好的方向发展
默认 急求一个关于k-means聚类的循环问题

原代码:

%初始化5个聚类中心,对经过处理的图像进行基于k-means聚类的子区域处理
function k=clusterpartition(locs)

ct=[50,50;140,50;90,120;50,170;130,170];%平均随机选取5个聚类中心
tic;
for i=1:200
dist1=sqrt((locs(:,1)-ct(1,1)).^2+(locs(:,2)-ct(1,2)).^2);
dist2=sqrt((locs(:,1)-ct(2,1)).^2+(locs(:,2)-ct(2,2)).^2);
dist3=sqrt((locs(:,1)-ct(3,1)).^2+(locs(:,2)-ct(3,2)).^2);
dist4=sqrt((locs(:,1)-ct(4,1)).^2+(locs(:,2)-ct(4,2)).^2);
dist5=sqrt((locs(:,1)-ct(5,1)).^2+(locs(:,2)-ct(5,2)).^2);
dt=[dist1,dist2,dist3,dist4,dist5];
[m,n]=min(dt');
newlocs=[locs,n'];
[r,c]=size(newlocs);
sub1=[];
sub2=[];
sub3=[];
sub4=[];
sub5=[];
for j=1:r
switch newlocs(j,5)
case 1
sub1=[sub1;newlocs(j,:)];
case 2
sub2=[sub2;newlocs(j,:)];
case 3
sub3=[sub3;newlocs(j,:)];
case 4
sub4=[sub4;newlocs(j,:)];
case 5
sub5=[sub5;newlocs(j,:)];
end
end
if size(sub1,1)>1
subm1=mean(sub1);
else
subm1=sub1;
end
if size(sub2,1)>1
subm2=mean(sub2);
else
subm2=sub2;
end
if size(sub3,1)>1
subm3=mean(sub3);
else
subm3=sub3;
end
if size(sub4,1)>1
subm4=mean(sub4);
else
subm4=sub4;
end
if size(sub5,1)>1
subm5=mean(sub5);
else
subm5=sub5;
end
ct=[subm1(1,1),subm1(1,2);subm2(1,1),subm2(1,2);subm3(1,1),subm3(1,2);subm4(1,1),subm4(1,2);subm5(1,1),subm5(1,2)];
end
dist1=sqrt((locs(:,1)-ct(1,1)).^2+(locs(:,2)-ct(1,2)).^2);
dist2=sqrt((locs(:,1)-ct(2,1)).^2+(locs(:,2)-ct(2,2)).^2);
dist3=sqrt((locs(:,1)-ct(3,1)).^2+(locs(:,2)-ct(3,2)).^2);
dist4=sqrt((locs(:,1)-ct(4,1)).^2+(locs(:,2)-ct(4,2)).^2);
dist5=sqrt((locs(:,1)-ct(5,1)).^2+(locs(:,2)-ct(5,2)).^2);
dt=[dist1,dist2,dist3,dist4,dist5];
[m,n]=min(dt');
k=[locs,n'];
toc;

说明:locs是一个求得的73X4矩阵
这段代码在m文件中编写,运行时循环只能执行一次,很奇怪。
我把代码直接复制到Command Windows里,程序成功运行。
我在m文件中设置断点执行,也可以成功运行。
很奇怪,请高手指点。
Dr.KenLo 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 03:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.