相关疑难解决方法(0)

使用稀疏矩阵时的最佳实践

这个问题是基于这个问题的讨论.我之前一直在使用稀疏矩阵,我相信我使用它们的方式很有效.

我的问题是双重的:

在下面,A = full(S)其中S是稀疏矩阵.

访问稀疏矩阵中元素的"正确"方法是什么?

也就是说,稀疏等价物var = A(row, col)是什么?

我对这个话题的看法:你不会做任何不同的事情.var = S(row, col)尽可能高效.我在这方面受到了以下解释的挑战:

按照你所说的方式访问第2行和第2列的元素,S(2,2)与添加新元素相同:var = S(2,2)=> A = full(S)=> var = A(2,2)=> S = sparse(A) => 4.

这句话真的可以说对吗?

将元素添加到稀疏矩阵的"正确"方法是什么?

也就是说,稀疏等价物会A(row, col) = var是什么?(假设A(row, col) == 0开始)

众所周知,A(row, col) = var对于大型稀疏矩阵来说,简单地做就很慢.从文档:

如果要更改此矩阵中的值,可能会尝试使用相同的索引:

B(3,1)= 42; %此代码确实有效,但速度很慢.

我对这个主题的看法:当使用稀疏矩阵时,你经常从向量开始并使用它们以这种方式创建矩阵:S = sparse(i,j,s,m,n).当然,您也可以像这样创建它:S = sparse(A)或者sprand(m,n,density) …

performance benchmarking matlab sparse-matrix

12
推荐指数
2
解决办法
1498
查看次数

标签 统计

benchmarking ×1

matlab ×1

performance ×1

sparse-matrix ×1