资源简介
利用Floyed算法计算网络中节点的最短距离,再计算网络效率。
代码片段和文件信息
%% ---------------------------计算网络效率-----------------------
clear;close all;clc;
%% 计算距离矩阵
XY=xlsread(‘邻接矩阵.xlsx‘‘坐标‘‘A1:B130‘); % 坐标
sj=xlsread(‘邻接矩阵.xlsx‘‘邻接矩阵‘); % 邻接矩阵
n=length(sj); % 节点个数
D=zeros(n); % 建立初始化距离矩阵
d=zeros(n);
for i=1:n
for j=i+1:n % 这里一定要是i+1,否则会得到错误结果
d(ij) = sqrt(sum((XY(i:) - XY(j:)).^2)); % 计算任意两点之间的距离
if sj(ij)~=0
D(ij)=d(ij); % 提取相连节点之间的距离
elseif sj(ij)==0
D(ij)=inf; % 除对角线外,其它0元素都替换为inf
end
end
end
D=D+D‘; % D为距离矩阵
%% 利用Floyed算法计算网络节点之间的最短距离
path=zeros(n);
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)=k;
end
end
end
end
% 对角线元素变为inf
for i=1:n
D(ii)=inf;
end
D; % D为i和j之间的最短距离矩阵
%% 计算网络效率
for i=1:n
for j=1:n
if i~=j
e=sum(sum(1./D))/(n*(n-1));
end
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1086 2019-01-21 12:36 Distence.m
- 上一篇:几十个G尚硅谷最新大数据项目视频
- 下一篇:微信小程序的欢迎界面
评论
共有 条评论