0

正方バイナリ行列をグラフに変換できることは知っています。たとえば、以下の matlab マトリックスで gplot を使用すると、グラフに変換できます。

0 1 1 
1 0 0
0 1 0

グラフで表すことができます

A->B, A->C, B->A,C->B

しかし、次のような長方形の行列を変換する方法があるのだろうか

0 1
1 0
0 1

matlabまたは他の言語でグラフに変換しますか?

また、私の行と列は異なる変数です。

4

2 に答える 2

1

@Ante が提案したように、本当に Bipartite graphに興味がある場合は、gplotここでも賢く利用できます。

  1. 最初に、長方形の行列にゼロ列を追加して、正方形の隣接行列を作成します。

    A = [0 1; 1 0; 0 1];
    Asq = eye(sum(size(A)));
    Asq(1:size(A, 1), end - size(A, 2) + 1:end) = A;
    
  2. 行の頂点が左側にあり、列の頂点が右側にあると決めましょう。頂点の座標の行列を作成します。

    xy1 = [ones(size(A, 1), 1), (1:size(A, 1))'];      % # Row vertices
    xy2 = [2 * ones(size(A, 2), 1), (1:size(A, 2))'];  % # Column vertices
    
  3. グラフをプロットします。

    gplot(Asq, [xy1; xy2], '*-')
    axis([0, 3, 0, size(A, 1) + 1])
    

これはあなたの例のために得られるべきものです: ここに画像の説明を入力

于 2012-12-11T14:06:37.370 に答える
0

行と列のノードが異なる場合は、2部グラフの隣接行列です。

于 2012-12-11T12:01:43.687 に答える