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

资源简介

小世界网络生成matlab代码,生成矩阵,不画图

资源截图

代码片段和文件信息

function matrix = SW() %By 201121250314
tic 
N=20;m=4;% 初始化网络数据 
p=0.1;% 以概率p=0.1在随机选取的一对结点之间加上一条边 
matrix=sparse([][][]20200);
% 创建一个20*20的全0稀疏矩阵
% 建立初始的环状的规则网络 
% 结点网络有N个节点 
% 每个结点向与它最近邻的m个结点连出边
% 求出邻接矩阵 
for i=m+1:N-m 
    for j=i-m:i+m 
        matrix(ij)=1; 
    end
end
for i=1:m 
    for j=1:i+m
        matrix(ij)=1;
    end
end
for i=N-m+1:N
    for j=i-m:N
        matrix(ij)=1;
    end
end
for i=1:m
    for j=N-m+i:N
        matrix(ij)=1;
        matrix(ji)=1;
    end
end
%逆时针的边重连从节点到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);
            % 取出邻接矩阵中的非0元素位置
            M=length(unconect);% 求出非0元素个数
            r1=ceil(M*rand(1));% 正向取整
            matrix(iunconect(r1))=1;
            matrix(unconect(r1)i)=1;
            % 连接这一对点 %
            matrix(ij)=0;
     

评论

共有 条评论