从完整矩阵转换为稀疏矩阵

时间:2011-06-14 11:45:40

标签: matlab

我有一个图的邻接权重矩阵。我想调用matlabbgl libaray的bellman ford算法。如何将矩阵转换为稀疏格式?

1 个答案:

答案 0 :(得分:4)

将完整转换为稀疏

您可以使用带有单个参数的稀疏函数将完整矩阵转换为稀疏存储。

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