⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 centroid.m

📁 Matlab WSNs 质心法代码
💻 M
字号:
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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -