📄 averageshortestpath.m
字号:
% clear;
clc;
%给定网络,求分层指数
% load RDG1 RDG1;
sf=RDG1;
% sf=full(RDG1);
size=size(sf);
node_num=size(1);
% sf=sf-diag(diag(sf));
% for i=1:node_num
% if sum(sf(i,:))==0
% sf(i,round(unifrnd(1,node_num)))=1;
% end
% end
degree=sum(sf,2);
local_C=zeros(node_num,1);
for i=1:node_num
if degree(i)==0 | degree(i)==1
local_C(i)=0;
else
adj=zeros(degree(i),1);
k=0;
for j=1:node_num
if j~=i & sf(i,j)==1
k=k+1;
adj(k)=j;
end
end
edge_num=0;
for n=1:degree(i)
for m=n:degree(i)
if sf(adj(n),adj(m))==1
edge_num=edge_num+1;
end
end
end
local_C(i)=2*edge_num/(degree(i)*(degree(i)-1));
end
end
total_C=sum(local_C)/node_num; %求网络平均集群系数
C=zeros(node_num-1,1);
Num=zeros(node_num-1,1);
for k=1:node_num
if degree(k)>0
C(degree(k))=C(degree(k))+local_C(k);
Num(degree(k))=Num(degree(k))+1;
end
end
for k=1:node_num-1
if Num(k)>0
C(k)=C(k)/Num(k);
end
end
TC=sum(C);
nonzero_Cindex=find(C);
nonzero_C=C(find(C));
plot(nonzero_Cindex,nonzero_C);
x=log(nonzero_Cindex);
y=log(nonzero_C);
[v,s]=polyfit(x,y,1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -