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
%在坐标系内随机分布50个待定位节点,以红色星号表示
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;
%以dm为半径,寻找每个待定位节点周围的锚节点
for i=1:1:m
d=norm((xy(:,i)-SS),2);
%%%%%%%%%%%设定权值%%%%%%%%%%%%
if d<=dm
%xy是一个2行m列的矩阵,所有横坐标为第一行,纵坐标为第二行;xx(j,i)
%表示第j个待定位节点的第i个锚节点的横坐标
p(j,i)=1/d ;
xx(j,i)=xy(1,i);
yy(j,i)=xy(2,i);
k=k+1;
else
p(j,i)=0;
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
%距离加权的改进质心,以三角表示
if k~=0
centx(:,j)=[sum(xx(j,:).*p(j,:));sum(yy(j,:).*p(j,:))]/(sum(p(j,:)));
else
centx(:,j)=0;
end
plot(centx(1,j),centx(2,j),'^')
hold on
%画出每个待定位节点与所属于的质心的距离,以绿线表示
plot([cent(1,j) Sx(j)],[cent(2,j) Sy(j)],'g')
Title('Centroid')
hold on
%画出每个待定位节点与所属于的加权质心的距离,以红线表示
plot([centx(1,j) Sx(j)],[centx(2,j) Sy(j)],'m')
Title('xCentroid')
hold on
%求出每个待定位节点的定位误差
MM=[cent(1,j);cent(2,j)]
e(j)=norm((MM-SS),2)/dm
NN=[centx(1,j);centx(2,j)]
err(j)=norm((NN-SS),2)/dm
end
figure
axis([0 n 0 10])
j=1:1:n
%绿线表示质心与实际位置的误差
plot(j,e(j) ,'-g.')
hold on
%红线表示加权质心与实际位置的误差
plot(j,err(j) ,'-m.')
hold on
Title('Centroid')
E=sum(e)/n
ERR=sum(err)/n
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
zMxvWXtwHBiH2T.zip (1个子文件)
RSSIzhixin4.m 2KB
共 1 条
- 1
资源评论
- xuke08012024-04-13资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
- qq_575876882024-05-13这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
且行好事莫问前程
- 粉丝: 2w+
- 资源: 443
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功