私が必要とするのは、まったく反対です。発生率マトリックスのグラフMatlab
I = incidence(G).
ここで私はすでに入射行列I
を持っている、ノードとエッジを含むグラフであるG
を取得する方法は、ありますか?
私が必要とするのは、まったく反対です。発生率マトリックスのグラフMatlab
I = incidence(G).
ここで私はすでに入射行列I
を持っている、ノードとエッジを含むグラフであるG
を取得する方法は、ありますか?
私はMatlabの方法を見つけられませんでしたが、私は開発した以下の方法は非常に単純です:
ので、すべての作業がfind
との情報で行われ
% Define your test graph
s = [1 1 1 2 3 3];
t = [2 3 4 3 4 5];
G = graph(s,t);
I = incidence(G);
% Find the source nodes from incidence matrix
[s2,~] = find(I == -1)
% Find the target nodes from incidence matrix
[t2,~] = find(I == 1)
% Generate graph from source and target nodes
G2 = graph(s2, t2);
figure;
subplot(211);
plot(G);
subplot(212);
plot(G2);
% Check
I2 = incidence(G2);
assert(isequal(I, I2), 'Did not generate same incidence matrices');
:
I =発生率(G)はグラフGの疎行列を返します。もしs とtがj番目の辺のソースノードとターゲットノードのノードIDであるならば、I(s、j)= -1とI(t、 j)= 1である。すなわち、I の各列は、 Gの単一エッジのソースノードとターゲットノード
それはあなたの親切な助けのために、私が望む正確なものを返します。 – Hamidreza
@HamidrezaMirtaheri:聞いてよかったです。あなたが私の答えを投票してそれを受け入れるならば素晴らしいでしょう。http://stackoverflow.com/help/someone-answers –
原則として、これまでのところわかるはずです。あなたは、入射行列から隣接行列を得る方法を探すことができます。これまでに何を試しましたか?編集:または各エッジのソースノードとターゲットノードを「収集」します。 –
いいえ、matlabメソッドのような直接的な方法があるかどうかを知りたかったのです。 – Hamidreza