小白求助!如何用matlab实现对bbv网络模型的模拟以及输出

kuren9042 2017-06-17 12:05:33
由于是文科生,对matlab知之甚少,编程也是一窍不通。从网上下载了一个源代码,可是用matlab运行却显示出错,无法输出。。。
还请各位大神指导下,感激不尽。主要就是想得到strength分布图、度分布图、权分布图和度-势相关图
以下是从网站下的代码:
tic
%%初始化
n=8;
w0=2;
w=w0*ones(n); %%%构造初始网络
for i=1:n
w(i,i)=0;
end
while(n<5000)
s=sum(w);
Bj=find(s);
bsize=length(Bj);
k=s(Bj)/sum(s(Bj)); %%%选择连接:概率公式
k=cumsum(k);
k=[0,k];
%%选择连接点
w=[w,zeros(n,1)];
w=[w;zeros(1,n+1)]; %%增加一个节点(孤立).
r1=rand(1);%连接第一个节点
for i=1:bsize
if(k(i)<=r1 & k(i+1)>r1)
i1=i;
w(n+1,Bj(i1))=w0;w(Bj(i1),n+1)=w0; %增加连边
%%%%%原来与新节点相连的边权将发生变化
s=sum(w);
for j=1:n
if w(Bj(i1),j)~=0
w(Bj(i1),j)=w(Bj(i1),j)+w(Bj(i1),j)*w0/s(Bj(i1)); %%% 与之相关的边的权发生改变
w(j,Bj(i1))=w(j,Bj(i1))+w(j,Bj(i1))*w0/s(Bj(i1));
end
end
break
end
end
r2=rand(1);%连接第二个节点
while(k(i1)<=r2 & k(i1+1)>r2)
r2=rand(1);
end
for i=1:bsize
if(k(i)<=r2 & k(i+1)>r2)
i2=i;
w(n+1,Bj(i2))=w0;
w(Bj(i2),n+1)=w0; %增加连边
%%%%%原来与新节点相连的边权将发生变化
s=sum(w);
for j=1:n
if w(Bj(i2),j)~=0
w(Bj(i2),j)=w(Bj(i2),j)+w(Bj(i2),j)*w0/s(Bj(i2)); %%% 与之相关的边的权发生改变
w(j,Bj(i2))=w(j,Bj(i2))+w(j,Bj(i2))*w0/s(Bj(i2));
end
end
break
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%
n=n+1;
end
%%%1.strengh的分布图 ---取整再画图
s2=fix(s);
pp1=tabulate(s2);
sw=find(pp1(:,3)>0);

subplot(2,2,1);
loglog(pp1(sw,1),pp1(sw,3)/100,'k.');
title('strengh的分布图')
xlabel('s');
ylabel('P(s)');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%下面画出相应的度分布图
df=sum(w>0);
pp2=tabulate(df);
sw=find(pp2(:,3)>0);

subplot(2,2,2);
loglog(pp2(sw,1),pp2(sw,3)/100,'k*');
lsline %最小二乘拟合直线
title('度分布图')
xlabel('k');
ylabel('P(k)');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% 下面画出:度-势相关图

subplot(2,2,3);
plot(df,s2,'k.');
lsline %最小二乘拟合直线
title('度-势相关图 ')
xlabel('k');
ylabel('s');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% 下面画出:权分布图
wf=fix(w);
Aq=zeros(1,n*n);
for i=1:n
Aq(1,((i-1)*n+1):i*n)=wf(i,:);
end
wfw=find(wf>0);
pp3=tabulate(Aq(wfw));
sw=find(pp3(:,3)>0);

subplot(2,2,4);
plot(pp3(sw,1),pp3(sw,3)/100,'ko');
title('权分布图')
xlabel('w');
ylabel('P(w)');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


toc
...全文
463 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,424

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧