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

📄 f1.m

📁 这个源代码是小世界网络模型MATLAB仿真源代码。
💻 M
字号:
%生成小世界网络的邻接矩阵
tic %程序运行时间控制
%设置网络可调控制参数
N=input('输入网络节点个数: ');
m=input('输入节点的最小度m: ');
p=input('输入概率p,其中(1>=p>=0): ');
%N=10;m=3;
%p=0.1;%平均度:2m,m<<N
%初始的环形规则格点网络
matrix=sparse([]);
for i=m+1:N- m
   for j=i- m:i+m
        matrix(i,j)=1;
   end
end
for i=1:m
     for j=1:i+m
            matrix(i,j)=1;
     end
end
for i=N- m+1:N
      for j=i- m:N
           matrix(i,j)=1;
      end
end
for i=1:m
      for j=N- m+i:N
           matrix(i,j)=1;matrix(j,i)=1;
      end
end
%逆时针的边重连,从节点1 到N- m- 1
for i=1:N- m- 1
     for j=i+1:i+m
         r=rand(1);
         if r<=p
            unconect=find(matrix(i,:)==0);
            r1=ceil(length(unconect)*rand(1));
            matrix(i,unconect(r1))=1;
            matrix(unconect(r1),i)=1;
            matrix(i,j)=0; matrix(j,i)=0;
         end
     end
end
%逆时针的边重新连接,从节点N- m到N- 1
for i=N- m+1:N- 1
       for j=[i+1:N 1:i- N+m]
           r=rand(1);
           if r<=p
               unconect=find(matrix(i,:)==0);
               r1=ceil(length(unconect)*rand(1));
               matrix(i,unconect(r1))=1;
               matrix(unconect(r1),i)=1;
               matrix(i,j)=0;matrix(j,i)=0;
           end
       end
end
%逆时针的边重新连接,节点N
for i=N
      for j=1:m
          r=rand(1);
          if r<=p
             unconect=find(matrix(i,:)==0);
             r1=ceil(length(unconect)*rand(1));
             matrix(i,unconect(r1))=1;
             matrix(unconect(r1),i)=1;
             matrix(i,j)=0;matrix(j,i)=0;
          end
     end
end
%恢复小世界网络的邻接矩阵
for m=1:N
     matrix(m,m)=0;
end
%存储邻接矩阵
save data matrix;
toc %程序结束
r=0:2*pi/N:2*pi;
x=cos(r);
y=sin(r);
plot(x,y,'o'),
hold on,
for i=1:N
    for j=i:N
       if matrix(i,j)==1
            n=[cos(i*2*pi/N) cos(j*2*pi/N)];
             m=[sin(i*2*pi/N) sin(j*2*pi/N)];
             plot(n,m,'b-');
            
        end
    end
end

⌨️ 快捷键说明

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