所以我試圖創建一個鄰接矩陣,我對accumarray(matrix+1,1)
和accumarray(matrix,1)
之間的區別感到困惑。matlab - Accumarray Adjacency Matrix Confusion?
我所做的:
matrix = [ 1 3
4 2
1 3
3 1]
adMatrix1 = accumarray(matrix,1);
adMatrix1=adMatrix1~=0;
adMatrix1 = [0 0 1
0 0 0
1 0 0
0 1 0]
然後:
adMatrix2 = accumarray(matrix+1,1);
adMatrix2=adMatrix2~=0;
adMatrix2 = [0 0 0 0
0 0 0 1
0 0 0 0
0 1 0 0
0 0 1 0]
我知道,與「矩陣+ 1」,也就是零的一個額外的行和列,但我不明白爲什麼你會這樣做。當我查看它時,根據this後我應該使用「矩陣+ 1」,我得到的最好解釋是「因爲matlab中的索引從1開始」。
我完全不明白......如果我試圖創建一個鄰接矩陣,哪種方式是正確的?任何幫助將不勝感激,謝謝!
哦,我的nodeID的索引從1開始,那麼我認爲'accumarray(matrix,1)'應該是正確的,謝謝! – ocean800