如何在matlab中将给定的邻接矩阵表示为无向加权图?

时间:2014-05-11 06:10:10

标签: matlab matrix graph

对于下面给定的矩阵,它如何表示为无向加权图G(V,E,W),其中V是顶点集,E是边集,W是权重集。

  4     2     3     1     4
  2     2     3     1     4
  2     3     3     1     4
  1     2     3     1     4
  4     2     3     1     5

我试过的源代码:

%table2 is given matrix
bg = biograph(table2,[],'ShowArrows','off','ShowWeights','on');
h = view(bg);

这是为我的矩阵表示无向加权图的正确方法吗?我在相同的2个椎体之间得到2条边。就像这样

enter image description here

我为你建议的代码得到了这个输出 enter image description here

我有2个邻接矩阵。我必须执行以下2个操作:

1.我必须从这两个邻接矩阵中制作2个图表。

2.然后我必须根据图中边的权重来匹配2个图的顶点。

  4     2     3     1     4
  2     2     3     1     4
  2     3     3     1     4
  1     2     3     1     4
  4     2     3     1     5

 4     1     3     2     4
 1     1     2     3     4
 3     1     3     2     4
 2     1     3     2     4
 4     1     3     2     5

我的方式是对还是错?请建议我

1 个答案:

答案 0 :(得分:5)

要在每个顶点之间只获得一条边,您只需要一个三角矩阵。

如果您尝试这样的事情:

table1 = (table2 + table2') - triu((table2 + table2')) 
table1 =
     0     0     0     0     0
     4     0     0     0     0
     5     6     0     0     0
     2     3     4     0     0
     8     6     7     5     0

bg = biograph(table1,[],'ShowArrows','off','ShowWeights','on');
h = view(bg);

现在我假设您想要从两个边缘总结权重。即从原始矩阵开始,1-2的边缘的重量等于边缘的重量从1> 2 + 2-> 1。 enter image description here