2
鏈接和邊緣我有例如如何找到鄰接矩陣給定一組在MATLAB
A = [1;2;3;4];
所有邊緣的矢量我也有所有連接這些邊緣的鏈接,通過爲邊緣號碼所代表的矩陣示例
B = [1 3;3 1;1 2;1 2;2 3;4 3];
我想用此數據構造鄰接矩陣。矩陣不應該考慮鏈接中邊的排序。例如,第二個鏈接有邊1 2,但矩陣應該在1,2和2,1中都有條目。 因此,因此我需要這樣的
C = [0 1 1 0;1 0 1 0;1 1 0 1;0 0 1 0];
輸出我想不出比使用一個for循環B的大小,然後發現在B中的每個環節egdes,然後加1倍的一個以外的任何其他方式在i,j處預先初始化4×4矩陣,其中i,j是鏈路邊緣。
這是一種有效的方式,因爲我的實際尺寸大於4?有人可以幫助更好地構建矩陣嗎?
謝謝你的回答河但是我對這個問題做了一些改變。無論鏈接的順序如何,我都需要矩陣輸入條目。 –
你說_矩陣不應該考慮鏈接中邊的排序_但是那麼你怎麼知道每個邊的使用順序?你會有兩次以上的無序邊緣嗎?如果只有一次發生,訂單是否應該倒置?我的意思是,給定'B = [1 3; 1 2]'結果應該是'C = [0 1 1]',還是'C = [0 0 1; 1 0 0]',或者......? –
對不起,我感到困惑。通過排序我的意思是描述鏈接的邊緣。所以如果'B = [1 3; 1 2]',另一個描述'B = [3 1; 2 1]'也應該被認爲是構造'C'。所以在這種情況下'C = [0 1 1; 1 0 0; 1 0 0]'。我需要的是如果在一對邊之間存在鏈接,矩陣應該包含1(i,j)和(j,i)。希望這已經說清楚了! –