【发布时间】:2013-03-02 10:40:45
【问题描述】:
假设我有一个稀疏矩阵Sparstica,它是几个其他稀疏矩阵的垂直串联。当我输入Sparstica(:) 时,我得到一个非零元素的列表。左列是元素的索引,右列是非零元素。
如何操作中间n-2 块(总共n 稀疏块矩阵)中每隔一个稀疏块矩阵的第i 个和第j 个非零元素?
附加:为了澄清我所说的每个其他稀疏矩阵的第 i 个和第 j 个元素的意思,假设我有
Sparstica = [A_1; A2; A_3; ... ; A_n]
这是从vertcat 创建的。现在我需要从A_2 到A_{N-1} 的每隔一个稀疏矩阵的第i个和第j个非零元素(我知道这个符号实际上不允许,但仅用于演示目的)。如果可能的话,我想不使用for循环来完成这个。
【问题讨论】:
-
n在您的情况下有多大?你有没有检查过使用for-loops 确实太慢了? -
mathworks.com/help/matlab/math/… ctrl+f "加剧效率低下"。对于我的目的,
n可以达到 2^15 左右。我忘记了 Matlab 在我的机器上可以处理的上限是多少。
标签: matlab indexing block sparse-matrix