刚接触复杂网络,用编写了几个简单的网络代码
G(N,P)型网络代码:
function ER(N,p)
%--------------------------------------------------------------------------
A = zeros(N,N); %生成一个N*N的空矩阵,用以生成一个邻接矩阵
C = zeros(1,N); %生成一个一维矩阵,用以判断N个节点中是否有节点没有连边,成为了孤立点
for i=1:N
for j=(i+1):N %以上三角矩阵为基础,遍历所有的连边情况
b=rand(); %生成一个0~1的随机数,作为节点i与节点j之间存在连边的可能性
if b<=p
A(i,j)=1;A(j,i)=1; %当存在连边的可能性小于给定概率时,则生成连边,并将对应矩阵元素的值从0改为1
C(1,i)=1;C(1,j)=1; %对一维矩阵中的i、j号位置也改为1,表示该节点存在至少一条连边
end
end
end
for i=1:N
B(i,1)=cos((2*pi/N)*(i-1));
B(i,2)=sin((2*pi/N)*(i-1)); %生成一个N*2的矩阵用以存放N个节点在图中的位置
end
gplot(A,B,"-o"); %用gplot函数画出对应邻接矩阵的图
%--------------------------------------------------------------------------
%由于可能存在孤立点,而孤立点在上图中无法显示,所以进行如下操作,补全图中的孤立点
k=0; %存放