我有一个图的邻接权重矩阵。我想调用matlabbgl libaray的bellman ford算法。如何将矩阵转换为稀疏格式?
答案 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)反转示例转换。 将完整矩阵转换为稀疏存储不是生成稀疏矩阵的最常用方法。如果矩阵的顺序足够小,可以完全存储,那么转换为稀疏存储很少能节省大量成本。