我有一个无向随机图的ABCD PQRS XYZ
x n
邻接矩阵n
,因此A
可以是 0 或 1 。如果Aij
1 ,则表示 Aij
和 i
节点之间存在边缘。如果 0 ,则意味着它们之间没有边缘。
我想根据顶点的程度重新调整矩阵。所有顶点的度数小于等于 j
,我想把它们放在最后。假设有 k
这样的顶点,所以我的新邻接矩阵的最后 m
行和列将代表这些顶点。
我想在MATLAB中实现它。我不知道如何有效地解决它。只有一个人认为我知道如何找到这样的顶点。
m
感谢任何帮助。
答案 0 :(得分:4)
由于图表是无向的,因此邻接矩阵A
是对称的。正如您已经指出的那样,您可以通过对A
的行(或列)进行求和来分辨顶点的程度:
deg = sum(A, 2);
现在你可以sort
根据他们的学位
[sd si] = sort(deg, 'decrease'); %// sort in a decreasing order
您可以使用已排序的索引(si
)重新排列A
:
A = A(si,si);
请注意,您必须对A
的行和列应用相同的排列,否则......
既然您的图表按顶点的顺序排序,那么较小程度的一次将自然地位于A
的末尾。