2011-06-14 128 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)反转示例转换。 将全矩阵转换为稀疏存储不是生成稀疏矩阵的最常见方式。如果矩阵的顺序足够小以至于完全存储成为可能,那么转换为稀疏存储很少节省大量成本。