2011-06-14 166 views
3

我有一個圖的鄰接權重矩陣。我想調用matlabbgl libaray的bellman ford算法。如何將矩陣轉換爲稀疏格式?從完全轉換爲稀疏矩陣

+1

可能對它調用[sparse](http://www.mathworks.com/help/techdoc/ref/sparse.html)? – oleksii 2011-06-14 11:48:16

+0

如果您發現它們有用(請參閱此處有一個打勾)並使用upvotes,則應接受您的問題的答案。它會幫助你獲得更多答案。 – Rishabh 2011-06-14 11:49:58

回答

3

完全轉換到稀疏

您可以使用稀疏函數帶一個參數:一個完整​​的矩陣轉換爲稀疏存儲。

S = sparse(A) 

例如

A = [ 0 0 0 5 
     0 2 0 0 
     1 3 0 0 
     0 0 4 0]; 
S = sparse(A) 

產生

S = 

    (3,1)  1 
    (2,2)  2 
    (3,2)  3 
    (4,3)  4 
    (1,4)  5 

打印輸出列出S的非零元素,連同它們的行和列索引。元素按列排序,反映內部數據結構。 如果矩陣順序不是太大,可以使用全功能將稀疏矩陣轉換爲完全存儲。例如A = full(S)反轉示例轉換。 將全矩陣轉換爲稀疏存儲不是生成稀疏矩陣的最常見方式。如果矩陣的順序足夠小以至於完全存儲成爲可能,那麼轉換爲稀疏存儲很少節省大量成本。