matlab关于小世界网络模型的程序
各位高手多多帮忙,以下是我写的关于WS小世界网络模型的代码,图形老是显示不出来,好像还有几处错误,因为是菜鸟,希望各位帮我指点一下。
clear all;
clc;
format long;
k=6;N=200; %初始化,k为节点与相邻节点相连的个数,N为节点数
for i=1:14
p(15-i,1)=1/2^(i-1);
end
pp=length(p);
rap=5;
L=zeros(pp,rap);
C=zeros(pp,rap);
for ppp=1:pp
for rap1=1:rap
%p=0时的规则模型
for i=1:N %构建矩阵
for j=i+1:i+k/2
j1=j;
if j>N
j1=mod(j,N); %求余,使之成为一个环
end
A(i,j1)=1;A(j1,i)=1; %生成的矩阵是相互对称的
end
end
%以下是随机化重连
for i=1:N
for j=i+1:i+k/2
j1=j;
if j>N
j1=mod(j,N);
end
r=rand(1);
if ppp>r
A(i,j1)=0;A(j1,i)=0;
A(i,i)=1;
D=find(A(i,:)==0); %%%此处有错误。。。。
d=length(D);
d1=fix(rand()*d+1); %产生随机数
j2=D(d1); %得到列坐标的值
A(i,j2)=1;A(j2,i)=1;
A(i,i)=0;
end
end
end
%求平均路径
for i=1:N
A(i,i)=0;
end
find(A(i,i)==1)=inf;
for k=1:N
for i=1:N
for j=1:N
if A(i,j)>A(i,k)+A(k,j) %Floyd算法求最短路径
A(i,j)=A(i,k)+A(k,j);
end
end
end
end
L(pp,rap1)=sum(sum(A))/(N*(N-1)); %求出平均路径
%求聚类系数
for i=1:N
E=find(A(i,:)==1); %找出节点i的邻边
if isempty(E)
Ci(i)=0; %表示i节点的邻边没有相连的
else
m=length(E); %表示邻边的个数
if m==1
Ci(i)=0; %只剩一个节点
else
AA=A(E,E); %邻边组成的子图
Ci(i)=sum(sum(AA))/(m*(m-1));%每个节点的聚类系数
end
end
end
C(pp,rap1)=mean(Ci); %聚类系数
end
end
figure
average_L=mean(L,2);
semilogx(p,average_L/average_L(0,0),'--p');
hold on;
average_C=mean(C,2);
semilogx(p,average_C/average_C(0,0),'-rs');
hold on;
legend('L(p)/L(0)','C(p)/C(0)');
title('WS模型');
CA.zip_CA模型代码_小世界网络
版权申诉
112 浏览量
2022-09-19
16:16:04
上传
评论
收藏 1KB ZIP 举报
局外狗
- 粉丝: 64
- 资源: 1万+
最新资源
- 基于Python实现的股票量化交易策略源代码+视频讲解+案例代码,含RSI策略、BOP指标策略、KDJ策略、MACD指标策略等
- EDA编码.zip
- 文本分类任务训练神经网络来学习词汇表中每个词的词向量
- MyBatis进阶技巧:探索动态SQL的无限可能.md
- HM2300C-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HM2300B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 员工解除劳动合同申请表.pdf
- 物模块模型代码,前往设计物模块所属
- mybatis动态sql(使用<where>标签来处理多个查询条件)
- Java面试手册,助力大家面试过五关斩六将,面试成功
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈