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

如果您确实对Bipartite graph感兴趣,就像@Ante 建议的那样,您也可以巧妙地利用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

如果行和列的节点不同,则为二分图的邻接矩阵。

于 2012-12-11T12:01:43.687 回答