📄 aver_path_length.m
字号:
function [D,aver_D]=Aver_Path_Length(A)
%% 求复杂网络中两节点的距离以及平均路径长度
%% 求解算法:首先利用Floyd算法求解出任意两节点的距离,再求距离的平均值得平均路径长度
% A————————网络图的邻接矩阵
% D————————返回值:网络图的距离矩阵
% aver_D———————返回值:网络图的平均路径长度
N=size(A,2);
D=A;
D(find(D==0))=inf; %将邻接矩阵变为邻接距离矩阵,两点无边相连时赋值为inf,自身到自身的距离为0.
for i=1:N
D(i,i)=0;
end
for k=1:N %Floyd算法求解任意两点的最短距离
for i=1:N
for j=1:N
if D(i,j)>D(i,k)+D(k,j)
D(i,j)=D(i,k)+D(k,j);
end
end
end
end
aver_D=sum(sum(D))/(N*(N-1)); %平均路径长度
if aver_D==inf
disp('该网络图不是连通图');
end
%% 算法2: 用时间量级O(MN)的广度优先算法求解一个含N个节点和M条边的网络图的平均路径长度
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -