【发布时间】:2013-09-09 18:47:45
【问题描述】:
我必须执行这个操作:
N = A'*P*A
P 矩阵的结构是块对角矩阵,而 A 矩阵很大程度上是稀疏的(也是带状结构)。乘法以块的形式进行。但问题是存储。
N 矩阵太大而无法完整存储(尝试分配时内存不足)。所以,我想以稀疏的方式存储。虽然sparse命令只生成行、列格式的值,但是否可以用于存储以行列作为块索引的带状矩阵?
我尝试了this 问题中给出的spalloc,但它没有帮助存储块的行和索引。 谢谢。
A P A' 形成的图像
问题在于块。这些块本身是稀疏的。那么是否可以在保存时将块本身制作为稀疏矩阵。 那么,如果一个块有 row = 1 和 col = 1,那么可以这样做吗?
N(row,col) = sparse(A'*P*A)
【问题讨论】:
-
您能否提供一些示例代码来创建类似的感兴趣的 A 和 P?
-
@Steve 我为 A 和 P 分享了一张图片以显示结构。
-
到底是什么问题?如果你知道块内的坐标,所有块的大小,以及它是哪个块;那你就什么都知道了。
-
我想实现两个稀疏级别,将各个块存储为稀疏矩阵。有可能吗?
-
@shunyo 将所有块定义为稀疏块,然后执行乘法运算。
标签: matlab sparse-matrix