袁乾_PM

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在社会网络的研究过程中,在采用模拟数据的同时,也有大量研究采用实际数据进行研究,按如何绘制现有网络的度分布的双对数曲线图是一个难题,今天进行相关摸索,在基于matlab平台下,实现绘图过程;具体见附件吧!附件中给出了解释,需要的可以自己拿过去修改!!

MATLAB源代码

%step 1 ------------------------------------------
A=tabulate(sum(UC)); %这里是无向图,在有向图做相应修改就可以了
A(A(:,2)==0,:)=[];%剔除干扰数据,是因为tabulate的输出结果特性而导致

%Step2--------------------------------------------
%进行拟合操作,得到截距和斜率,这里的拟合函数可以多试试,在我的例子中,
%我用nlinfit取得较好的效果,如果不想找,就直接在拟合工具箱中手动操作,
%然后得到的结果拿回来手动赋值也是可以的。
fun=@(a,x)a(1)*x.^(a(2));
x=A(:,1);
y=A(:,3)./100;
a=nlinfit(x,y,fun,[0,0]);

%Step3-------------------------------------------
%绘图
figure(1)
loglog(A(:,1),A(:,3)./100,'k.');
hold on
Y=a(1)*A(:,1).^(a(2));
loglog(A(:,1),Y,'r-');
hold off

posted on 2015-01-05 14:45  袁乾_PM  阅读(1098)  评论(2编辑  收藏  举报