matlab中的相邻节点及其分离

matlab中的相邻节点及其分离,matlab,matrix,plot,Matlab,Matrix,Plot,在matlab上,我有一个邻接矩阵,并使用一个函数,我想了解如何绘制直方图,显示两个给定节点(最多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

在matlab上,我有一个邻接矩阵,并使用一个函数,我想了解如何绘制直方图,显示两个给定节点(最多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

无标度网络可视化,包括分离度直方图,可能会有帮助…

无标度网络可视化,包括分离度直方图,可能会有帮助…

一般来说,使用,它计算图形中所有节点对之间的最短路径


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

通常,这是使用来解决的,它计算图形中所有节点对之间的最短路径


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

请添加到目前为止开发的代码。问题不清楚,您需要帮助的是哪一部分?能否显示一个简单的数值示例?请添加到目前为止开发的代码。问题不清楚,您需要帮助的是哪一部分?能否显示一个简单的数值示例?