【发布时间】:2014-07-16 22:14:49
【问题描述】:
我有一个快速的图论问题。
我在 Matlab 中有一个 13 x 13 的邻接矩阵。我已经只取了下对角线(这是一个无向图)并从单位矩阵中减去(因此没有将节点连接到自身的边)。然后,我在左侧添加一列,在顶部添加一行,其中包含四个节点的 ID 号。生成的 14 x 14 邻接矩阵如下所示:
A =
0 1 1 1 1 2 2 2 3 3 3 4 4 4
1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 1 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 1 0 0 0 0 0 0 0 0 0 0 0
4 1 0 0 0 1 0 0 0 0 0 0 0 0
4 0 0 0 1 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 1 0 0 0 0 0 0
如何从中创建坐标数组?我知道结果应该有 7 行(每个唯一节点对一个)。
如果您能提供帮助,请告诉我。提前致谢!
【问题讨论】:
-
您能否重新格式化该矩阵
A?我无法从中做出正面或反面 -
哈哈,没错,我打字的时候看起来不错——现在想弄清楚。
-
尝试将每行缩进 4 个空格。这会将其放置在代码块中。
-
让我快速复习一下邻接矩阵。条目
(i,j)中的数字代表什么?我的理解是这应该只有0和1,它代表节点i,所有其他节点j连接到i。 -
打败我,再次感谢!条目 (i,j) 表示在第一列的第 i 个节点和第一行的第 j 个节点之间存在一条边。所以 (6,2) 处的“1”表示节点 2(见第一列)和节点 1(见第一行)之间有一条边。不过,您是对的,无向图的典型邻接矩阵是 1 和 0 的 13x13 下对角线——我在第一行和第一列中添加了 ID 号,因为这些是我最终需要作为坐标对列出的内容。
标签: matlab coordinates graph-theory adjacency-matrix