【发布时间】:2014-06-06 06:01:59
【问题描述】:
让我们考虑以下矩阵
A = [ 0 0 0 5
0 2 0 0
1 3 0 0
0 0 4 0]
A =
0 0 0 5
0 2 0 0
1 3 0 0
0 0 4 0
如果我们这样做
sparse(A)
ans =
(3,1) 1
(2,2) 2
(3,2) 3
(4,3) 4
(1,4) 5
它只显示了这些元素的非零元素和索引,但是我如何使用这些数据来构造新的向量或数组?我也想了解以下命令
S = sparse(i,j,s,m,n)
它的定义是这样的
i 和 j 分别是矩阵的非零元素的行和列索引向量。 s 是一个非零值向量,其索引由对应的 (i,j) 对指定。 m 是结果矩阵的行维度,n 是列维度。
但是它对我们创建新数组有帮助吗?或者一般来说稀疏命令的想法是什么?我知道这是对存储的优化并且只采用非零元素,但是我们如何在进一步的计算中使用结果呢?提前谢谢
【问题讨论】:
-
这可能比您要求的更详细,但这里是介绍 MATLAB 稀疏存储的原始论文:mathworks.com/help/pdf_doc/otherdocs/simax.pdf [PDF]
标签: matlab sparse-matrix