• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: MATLAB  SPIN路由  

资源简介

MATLAB SPIN路由算法+具体代码,对于matlab和SPIN路由协议算法入门学习以及数学建模很有帮助!

资源截图

代码片段和文件信息

clf
clear
area_length=100; %长为100
area_width=100;   %宽为100
node_num=50; %节点数目
for    i=1:node_num
  Nodes{i}.x= area_length*rand(11);
    Nodes{i}.y =area_width*rand(11);
axis([0 100 0 100]);%设定坐标范围
plot(Nodes{i}.x Nodes{i}.y‘o‘);
       text(Nodes{i}.x Nodes{i}.y[‘ ‘num2str(i)]);%标坐标号
hold on
end

E_elec = 50*10^-6;
E_da=5*10^-9;
E_fs=10*10^-9;
E_mp=0.0013*10^-9;
for  i=1:node_num %赋予初始化能量
Nodes{i}.energy = 5;
end  

flag=0;%标志位
for  i=1:node_num %初始化标志位
Nodes{i}.flag = 0;
end  
Nodes{51}.x= area_length*rand(11);
Nodes{51}.y =area_width*rand(11);
plot(Nodes{51}.x Nodes{51}.y‘ob‘‘markerfacecolor‘‘red‘);%建立基站
text(Nodes{51}.x Nodes{51}.y[‘ ‘num2str(51)]);%标坐标号
Nodes{51}.flag = 0;
r=1+fix(rand(11)*50)%产生一个1-50范围内的随机点
plot(Nodes{r}.x Nodes{r}.y‘ob‘‘markerfacecolor‘‘green‘);%画出随机点

n1=100;
n2=10;
d0=20;  
data=[0 0 0 0 0 0 0 0 0 0];

for  i=1:node_num %赋予初始化能量
Nodes{i}.data(1) = 1+fix(rand(11)*10);%产生一个1-10范围内的随机数
end  
for  i=1:node_num
     d(i)=sqrt((Nodes{i}.x-Nodes{r}.x)^2+(Nodes{i}.y-Nodes{r}.y)^2);
if  d(i)Etx(i)=E_elec*n2+E_fs*n1*d(i)^

评论

共有 条评论