• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-02
  • 语言: Matlab
  • 标签:

资源简介

利用MATLAB求解复杂网络介数的函数 很好用。输入参数是网络的邻接矩阵,输出包括网络边介数,点介数,以及最短路径

资源截图

代码片段和文件信息

function [pNbEb]= betweenness(A)
%求邻接矩阵对应的网络的节点介数Nb和边介数Eb并在p中输出所有最短路径。在floyd算法基础上得来。
%先利用floyd算法得到最短路径和路径矩阵(path(ij)=从i到j最短路的第一跳节点号),然后利用path矩阵
%求出所有最短路径矩阵short_path,并根据short_path矩阵得到所有节点和边的介数。
%----先求path矩阵-------------------------
%circlenet(A);
n=size(A1);
D=A;
path=zeros(nn);
for i=1:n
   for j=1:n
       if D(ij)~=inf
           path(ij)=j; %j是i的后续点
       end
   end
end
% 利用Floyed算法求最短路径
for k=1:n
   for i=1:n
      for j=1:n
         if D(ij)>D(ik)+D(kj)
            D(ij)=D(ik)+D(kj);
            path(ij)=path(ik);
         end
      end
   end
end
%------再求介数-------------------------
short_path=zeros(nnn);%short_path是所有最短路径,最后一个n表示源节点,中间的n表示目的节点,第一个n表示路径,
                        %因为最长路径去掉源节点还

评论

共有 条评论

相关资源