质心算法matlab求讲解

clearclcfori=1:1:10forj=1:1:10x(j+(i-1)*10)=(i-1)*10;y(j+(i-1)*10)=(j-1)*10;endendfig... clear
clc
for i=1:1:10
for j=1:1:10
x(j+(i-1)*10)=(i-1)*10;
y(j+(i-1)*10)=(j-1)*10;
end
end
figure
plot(x,y,'.')
hold on
axis([0 100 0 100])
xy=[x;y]
hold on
xm=90;
ym=90;
n=50;
for i=1:1:n
Sx(i)=rand(1,1)*xm;
Sy(i)=rand(1,1)*ym;
plot(Sx(i),Sy(i),'r*')
xlabel('x轴')
ylabel('y轴')
hold on
end
dm=30
m=100;%%%以上都知道,就是下面看不懂,求讲解
for j=1:1:n
SS=[Sx(j);Sy(j)];
k=0;
for i=1:1:m
d=norm((xy(:,i)-SS),2);
if d<=dm
xx(j,i)=xy(1,i);
yy(j,i)=xy(2,i);
k=k+1;
else
xx(j,i)=0;
yy(j,i)=0;
end
end
if k~=0
cent(:,j)=[sum(xx(j,:));sum(yy(j,:))]/k;
else
cent(:,j)=0;
end
plot(cent(1,j),cent(2,j),'o')
hold on
plot([cent(1,j) Sx(j)],[cent(2,j) Sy(j)],'R')
Title('Centroid')
hold on
MM=[cent(1,j);cent(2,j)]
e(j)=norm((MM-SS),2)/dm
end
figure
axis([0 n 0 1])
j=1:1:n
plot(j,e(j) ,'-r.')
hold on
Title('Centroid')
E=sum(e)/n
唉,降低难度
xx(j,i)=xy(1,i);
yy(j,i)=xy(2,i);

这是啥意思,10块大洋
展开
 我来答
MeChess
2010-12-08 · TA获得超过1538个赞
知道小有建树答主
回答量:448
采纳率:100%
帮助的人:574万
展开全部
自从百度文库和百度知道通道阻塞后,好久没回答问题了,今天抽空回答一下:
clear
clc
for i=1:1:10
for j=1:1:10
x(j+(i-1)*10)=(i-1)*10;
y(j+(i-1)*10)=(j-1)*10;
end
end
figure
plot(x,y,'.')

hold on
axis([0 100 0 100])
xy=[x;y]
hold on
xm=90;
ym=90;
n=50;%在原有100个点中随机产生50个点
for i=1:1:n
Sx(i)=rand(1,1)*xm;
Sy(i)=rand(1,1)*ym;
plot(Sx(i),Sy(i),'r*')
xlabel('x轴')
ylabel('y轴')
hold on
end
dm=30
m=100;%%%以上都知道,就是下面看不懂,求讲解
for j=1:1:n
SS=[Sx(j);Sy(j)];%选择一个点
k=0;
for i=1:1:m
d=norm((xy(:,i)-SS),2);%计算这个点和其它100点的距离(用欧式距离)
if d<=dm %距离小于阈值则记录
xx(j,i)=xy(1,i);
yy(j,i)=xy(2,i);
k=k+1;
else%距离太大就不记录(可以这么理解:将随机点的周围点作为一组,太远的点就不作为这一组了)
xx(j,i)=0;
yy(j,i)=0;
end
end
if k~=0%如果这个随机点所在的组不是空集,则计算该组的均值
cent(:,j)=[sum(xx(j,:));sum(yy(j,:))]/k;
else
cent(:,j)=0;
end
plot(cent(1,j),cent(2,j),'o')%画出这个组的质心(将一张图分为几组)
hold on
plot([cent(1,j) Sx(j)],[cent(2,j) Sy(j)],'R') %画出这个随机点所属于的质心
Title('Centroid')
hold on
MM=[cent(1,j);cent(2,j)]
e(j)=norm((MM-SS),2)/dm%计算误差(质心和随机点)
end
figure
axis([0 n 0 1])
j=1:1:n
plot(j,e(j) ,'-r.')%画出这50个点的误差,即距离质心的距离
hold on
Title('Centroid')
E=sum(e)/n
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东莞大凡
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间... 点击进入详情页
本回答由东莞大凡提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式