2

假设我有一个稀疏矩阵Sparstica,它是几个其他稀疏矩阵的垂直串联。当我输入 时Sparstica(:),我得到一个非零元素的列表。在左列中,将是元素的索引,在右列中将是非零元素。

如何操作中间n-2块(n总共稀疏块矩阵)中每个其他稀疏块矩阵的第 i 个和第 j 个非零元素?


附加:为了澄清我所说的每个其他稀疏矩阵的第 i 个和第 j 个元素的意思,假设我有

斯巴斯蒂卡 = [A_1; A2; A_3; ... ; 一个]

这是从创建的vertcat。现在我需要取第 i 个和第 j 个,比如说第 3 个和第 5 个,每个其他稀疏矩阵的非零元素 from A_2to A_{N-1}(我知道这个符号实际上是不允许的,只是为了说明目的)。如果可能,我想在使用 for 循环的情况下完成此操作。

4

1 回答 1

4

您可以使用以下方法找到非零元素find

>> A = speye(3)

A =

   (1,1)        1
   (2,2)        1
   (3,3)        1

>> I = find(A ~= 0)

I =

     1
     5
     9

如果您需要行/列格式的索引,请使用ind2sub

>> [X, Y] = ind2sub(size(A), I)

X =

     1
     2
     3

Y =

     1
     2
     3
于 2013-03-14T07:29:24.273 回答