将矩形二进制矩阵转换为图形?

时间:2012-12-11 09:50:02

标签: matlab graph binary binary-data graph-visualization

我知道方形二进制矩阵可以转换为图形。例如,使用下面的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或任何其他语言编写图表?

我的行和列也是不同的变量。

2 个答案:

答案 0 :(得分: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])
    
  4. 这是你应该得到的例子: enter image description here

答案 1 :(得分:0)

如果行和列的节点不同,则它是Bipartite graph的邻接矩阵。