对于下面给定的矩阵,如何将其表示为无向加权图 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 条边。就像这样
我得到了你建议代码的输出
我有 2 个邻接矩阵。我必须执行以下 2 个操作:
1.我必须根据这 2 个邻接矩阵制作 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
我走的路是对还是错?请指教
最佳答案
要在每个顶点之间只获得一条边,您只需要一个三角矩阵。
如果你尝试这样的事情:
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);
现在我假设您想要对两条边的权重求和。 IE。 1-2 之间的边的权重等于原始矩阵中 1->2 + 2->1 的边的权重。
关于matlab - 如何在 matlab 中将给定的邻接矩阵表示为无向加权图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23589533/