节点收缩算法:function Z=node(a,dy)%a 为邻接矩阵a(a=inf)=0;a(=0)=1;n=size(a,1);%矩阵维数Z=zeros(n,1);%节点重要度向量%由邻接矩阵 a 得到直接矩阵 H%H 表示 c(i j)H=zeros(size(a);for i=1:nfor j=1:nif j=iH(i,j)=0;elseif a(I,j)=1H(i,j)=1;elseH(i,j)=inf;endendend%用 Floyd 法计算节点收缩前的最短就离矩阵 DD=H;for k=1:nfor i=1:nfor j=1:nIf D(i,k)+D(k,j)D(i,k)+D(k,j)D(i,j)=D(i,k)+D(k,j); %更新 ij 间距离C(i,j)=C(i,k)*C(k,j); %更新最短路径条数elseif D(i,j)=D(i,k)+D(k,j)if k=i %更新与最短距离相同的路径数endendendendendaver_D=sum(sum(D)/(N*(N-1); %平均最短路径长度% if aver_D=inf% disp(该网络图不是连通图 );% end