【发布时间】:2013-03-03 09:23:49
【问题描述】:
我的目标是将许多稀疏矩阵组合在一起形成一个大的稀疏矩阵。我唯一能想到的两个想法是(1)创建一个大型稀疏矩阵并覆盖某些块,(2)单独创建块使用vertcat 来形成我的最终稀疏矩阵。但是,我读到overwriting 稀疏矩阵的效率很低,而且我还读到 vertcat 的计算效率并不高。 (我都没有考虑使用 for 循环,因为它们的效率很低)。
那我还有什么其他选择?
编辑:结合我的意思是(垂直)将矩阵“粘合”在一起,元素不会相互作用。
【问题讨论】:
-
如果你把它们加在一起会发生什么?更具体地说 - 你的矩阵的维度是多少,你的书中的“组合”矩阵是什么样的?你能举个玩具的例子吗?
-
@Floris 尺寸范围可以从 2x2 到 2^18 x 2^18 或任何 Matlab 可以为我的脚本处理的最大值。我认为一个错误会在 2^18 左右产生。一个玩具例子可以是任意的。我的矩阵中唯一固定的是第一个和最后一个块,它们是
speye,但两者之间的一切都不同(尽管它们的大小是固定的) -
@Floris 我也无法添加它们 b/c 我无法找出适用于所有矩阵的全局索引。不过我刚看到你的帖子,所以我认为这不会是问题。
-
我想我的问题是“你打算如何结合”。当您将 10x10 和 10x10 组合时,结果是 10x10 还是 20x10?
-
@Floris 啊,我明白了。抱歉,10x10 加上 5x10 就是 15x10。元素不交互。
标签: matlab indexing block sparse-matrix