2

是否有将压缩行存储(CRS)格式的稀疏矩阵转换为坐标列表(COO)格式的有效方法?

4

1 回答 1

2

看看 Yousef Saad 的库SPARSKIT——他有子程序可以在压缩的稀疏行和坐标格式之间来回转换,以及其他几个稀疏矩阵存储方案。

无论如何,要了解如何从压缩格式中获取坐标格式,最简单的方法是首先考虑如何提出压缩行格式。假设您在 COO 中有一个稀疏矩阵,例如,您已将所有内容按顺序排列

rows: 1  1  1  1  2  2  2  2  2  3  3  3 ...
cols: 1  3  5  9  2  3  7  9  11 1  2  3 ...

因此,第 1 行中的非零条目是 (1,1)、(1,3)、(1,5)、(1,9) 等等。您在行数组中存储了大量冗余数据;相反,您可以只使用一个数组ia来告诉您数组中 rowia(i)的起始地址。在我们上面的例子中,我们将有colsi

ia  : 1  5  10  ...
cols: 1  3  5  9  2  3  7  9  11 1  2  3 ...

从首席运营官到企业社会责任,我们只是利用了这样一个事实:

ia(i+1) = ia(i) + number of non-zero entries in row i

对于任何 i。知道了这一点,您可以向后工作以从 CSR 获取 COO 格式。

于 2012-12-26T09:12:28.963 回答