一行全为零的稀疏矩阵的 CSR 格式

CSR Format for sparse matrices having one row full of zeros

能否在英特尔 MKL 库中使用 CSR 格式存储以下 3x3 稀疏矩阵?

A = [ 0 0 1
      0 0 0
      3 1 4];

valuesA   = {1, 3, 1, 4};
columnsA  = {2, 0, 1, 2};
rowIndexA = {0, 1,      3};

如何将其与以下 2x3 矩阵区分开来?

B = [ 0 0 1
      3 1 4];

valuesB   = {1, 3, 1, 4};
columnsB  = {2, 0, 1, 2};
rowIndexB = {0, 1,      3};

我有一行全是零的原因是矩阵索引。这个全零行可以发生在矩阵 A 中的任何地方。矩阵A实际上是一个更大的稀疏矩阵的子矩阵,将在方程组Ax = b中使用。有人可以给我一些见解吗?

如果该行为空,则重复rowIndexA中对应的值即可。

对于矩阵

0 0 1
0 0 0
3 1 4

正确的表示是:

valuesA = {1, 3, 1, 4};
columnsA = {2, 0, 1, 2};
rowIndexA = {0, 1, 1, 4};
           //   ^^^^ repeat 1

rowIndexA 中的最后一个值应等于元素的数量,即您的情况下的 4。然后你在每一行中得到正确数量的元素:第一行中的 1 - 0 = 1,第二行中的 1 - 1 = 0 和最后一行中的 4 - 1 = 3