1

matlabには隣接行列があり、関数を使用して、指定された2つのノード(最大10)間の分離度を示すヒストグラムをプロットする方法を知りたいと思います。今のところ、私はノードの隣人を見つける関数しか持っていません。基本的には、10を除いて、6次の隔たりの概念に似ています。

ありがとう!

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
4

2 に答える 2

3

一般に、これは、グラフ内のノードのすべてのペア間の最短経路を計算するFloyd–Warshallアルゴリズムを使用して解決されます。

Matlabを使用していて、接続されている2つのノード間の距離が常に同じ(「1ステップ」)であるため、行列の乗算を含むトリックを使用できます。隣接行列がある場合は、3AAすると次のようになりNます。ノードの各ペア間に存在する長さNのパスの数を示す新しい行列。したがって、ループで、Aを1乗、2乗などに上げ、各要素がゼロ以外になる値に注意してください。最大パス長はノードの数と同じなので、そこで停止できます。

于 2012-10-19T17:59:02.523 に答える
2

分離度のヒストグラムを含むスケールフリーネットワークの視覚化は、このリンクで見つけることができます、役立つかもしれません...

于 2012-10-19T17:29:08.233 に答える