一行全为零的稀疏矩阵的 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
。
能否在英特尔 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
。