邻居节点和matlab中的分离

时间:2012-10-19 16:57:59

标签: matlab matrix plot

在matlab上,我有一个邻接矩阵并使用函数,我想找出如何绘制直方图,显示2个给定节点(最多10个)之间的分离度。 截至目前,我只有一个找到节点邻居的函数。基本上它与6度分离的概念类似,除了10。

谢谢!

function n=neighbour(A,v)

global n;

    for i=1:length(v)
        a=find(A(:,v(i))+A(v(i),:)');
        n=setdiff(a(:)',v(i));
    end

end

2 个答案:

答案 0 :(得分:3)

通常,这是使用Floyd–Warshall algorithm解决的,{{3}}计算图表中所有节点对之间的最短路径。

由于您正在使用Matlab,并且因为任何两个连接节点之间的距离始终相同(“1步”),您可以使用涉及矩阵乘法的技巧:如果您有邻接矩阵A然后将A提升为N幂,为您提供一个新矩阵,告诉您每对节点之间存在多少条长度N 的路径。因此,在一个循环中,将A升高到第一个幂,第二个幂等,并注意每个元素变为非零的力。最大路径长度等于节点数,因此您可以停在那里。

答案 1 :(得分:2)

无标度网络可视化,包括分离度的直方图,可在此link中找到,可能会有所帮助......