2015-12-03 46 views
2

無向隨機圖的鄰接矩陣I具有無向隨機圖的n X n鄰接矩陣A,所以Aij可以是或。如果Aij是這意味着有ij節點之間的邊緣。如果它是那意味着它們之間沒有邊緣。資產重組基於連接

我想根據頂點的度數重新排列矩陣。所有頂點的度數小於等於k,我想把它們放在最後。假設有m這樣的頂點,所以最後m我的新鄰接矩陣的行和列將代表這些頂點。

我想在MATLAB中實現它。我不知道如何有效地解決它。只有一個人認爲我知道如何找到這樣的頂點。

a = 1:n; 
ver = a(sum(A) < k+1); 

任何幫助表示讚賞。

回答

4

由於您的圖形是不定向的,因此您的鄰接矩陣A是對稱的。正如你已經注意到,你可以簡單地通過A的行(或列)相加告訴頂點的程度:

deg = sum(A, 2); 

現在,您可以根據自己的程度

[sd si] = sort(deg, 'decrease'); %// sort in a decreasing order 

您可以sort頂點使用分類指數(si)重新安排A

A = A(si,si); 

請注意,您必須應用相同的置換來都行和A列,否則......

現在你的圖形是由頂點的有序程度較小程度的一次自然會在A結束。

+1

有人發現應用列相同的排列! –

+1

是的。好一個。我完全忽略了基於連接的排序可能性。再次感謝。 – Rajat