复杂网络学习的经典网络之一,WS小世界网络的概念就不再赘述,直接代码开整:
function WS(N,K,p1)
%N个节点,每个节点与相邻节点共有2K条连边,断边重连概率为p1
%------------------------------------------生成规则图
A = zeros(N,N);
for i=1:N
for j=1:K
x=i;
y=i+j;
if y>N
y=mod(y,N);
end
A(x,y)=1;A(y,x)=1;
end
end
for i=1:N
B(i,1)=cos((2*pi/N)*(i-1));
B(i,2)=sin((2*pi/N)*(i-1));
end
figure
gplot(A,B,'-o');
title('规则图');
axis square
%-----------------------------------------开始断边重连
C=A;
for i=1:N
for j=1:K
x=i;
y=i+K;
if y>N
y=mod(y,N);
end
p2=rand();
if p2<=p1
C(x,y)=0;C(y,x)=0;
k=0;
while k==0
y=unidrnd(N);
if C(x,y)==0 && x~=y
C(x,y)=1; C(y,x)=1;
k=1;
end
end
end
end
end
figure
gplot(C,B,'-o')
title('WS小世界网络');
axis square
%---------------

本文介绍了如何使用Matlab构建WS小世界网络,通过代码详细展示了实现过程,适用于复杂网络学习的研究。
最低0.47元/天 解锁文章
1941

被折叠的 条评论
为什么被折叠?



