資源簡介
小世界網(wǎng)絡(luò)生成matlab代碼,生成矩陣,不畫圖
代碼片段和文件信息
function?matrix?=?SW()?%By?201121250314
tic?
N=20;m=4;%?初始化網(wǎng)絡(luò)數(shù)據(jù)?
p=0.1;%?以概率p=0.1在隨機選取的一對結(jié)點之間加上一條邊?
matrix=sparse([][][]20200);
%?創(chuàng)建一個20*20的全0稀疏矩陣
%?建立初始的環(huán)狀的規(guī)則網(wǎng)絡(luò)?
%?結(jié)點網(wǎng)絡(luò)有N個節(jié)點?
%?每個結(jié)點向與它最近鄰的m個結(jié)點連出邊
%?求出鄰接矩陣?
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
%逆時針的邊重連從節(jié)點到N-m-1
for?i=1:N-m-1
????for?j=i+1:i+m
????????r=rand(1);%?隨機選取一個數(shù)
????????if?r<=p?
????????????unconect=find(matrix(i:)==0);
????????????%?取出鄰接矩陣中的非0元素位置
????????????M=length(unconect);%?求出非0元素個數(shù)
????????????r1=ceil(M*rand(1));%?正向取整
????????????matrix(iunconect(r1))=1;
????????????matrix(unconect(r1)i)=1;
????????????%?連接這一對點?%
????????????matrix(ij)=0;
?????
評論
共有 條評論