我知道方形二进制矩阵可以转换为图形。例如,使用下面的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或任何其他语言编写图表?
我的行和列也是不同的变量。
答案 0 :(得分:1)
如果您确实对Bipartite graph感兴趣,就像@Ante建议的那样,您也可以在这里巧妙地使用gplot
:
首先通过用零列填充矩形矩阵来创建一个方形邻接矩阵:
A = [0 1; 1 0; 0 1];
Asq = eye(sum(size(A)));
Asq(1:size(A, 1), end - size(A, 2) + 1:end) = A;
让我们确定行顶点位于左侧,列顶点位于右侧。现在为顶点创建一个坐标矩阵:
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
绘制图表:
gplot(Asq, [xy1; xy2], '*-')
axis([0, 3, 0, size(A, 1) + 1])
这是你应该得到的例子:
答案 1 :(得分:0)
如果行和列的节点不同,则它是Bipartite graph的邻接矩阵。