Matrix 稀疏矩阵存储格式.转换
是否有一种将压缩行存储(CRS)格式的稀疏矩阵转换为坐标列表(COO)格式的有效方法 看看Yousef Saad的库——他有一些子程序可以在压缩的稀疏行和坐标格式之间来回转换,还有一些其他稀疏矩阵存储方案 无论如何,为了查看如何从压缩的数据中获得坐标格式,最简单的是首先考虑如何生成压缩的行格式。例如,假设你在COO中有一个稀疏矩阵,你已经把所有事情都安排好了Matrix 稀疏矩阵存储格式.转换,matrix,sparse-matrix,Matrix,Sparse Matrix,是否有一种将压缩行存储(CRS)格式的稀疏矩阵转换为坐标列表(COO)格式的有效方法 看看Yousef Saad的库——他有一些子程序可以在压缩的稀疏行和坐标格式之间来回转换,还有一些其他稀疏矩阵存储方案 无论如何,为了查看如何从压缩的数据中获得坐标格式,最简单的是首先考虑如何生成压缩的行格式。例如,假设你在COO中有一个稀疏矩阵,你已经把所有事情都安排好了 rows: 1 1 1 1 2 2 2 2 2 3 3 3 ... cols: 1 3 5 9 2 3
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
,以便ia(i)
告诉您行i
的数组cols
中的起始地址。在上面的例子中,我们将
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
对任何我来说。知道了这一点,您就可以从CSR获得COO格式。Hi!谢谢你,我昨天也想出了一个类似的解决方案。在CSR中,值是按行排序的,而且我们已经知道每行中非零的数量。我使用了一个计数器,每行递增到非零的数量,然后重置。此时,行数增加1。每行都会重复整个过程。这就是我们为矩阵中的每个元素提供(行、列、值)的方法,我们可以在线性时间内构建COO格式。