是否有将压缩行存储(CRS)格式的稀疏矩阵转换为坐标列表(COO)格式的有效方法?
问问题
1845 次
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)
的起始地址。在我们上面的例子中,我们将有cols
i
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 回答