看了很多介绍CSR的博客,发现对解码的一个细节没有介绍清楚,对于我这种菜鸡来讲还是需要花点时间才能想明白,故在此记录一下。

Compressed Sparse Row(CSR) Compressed Sparse Column (CSC)

编码

行优先遍历矩阵Matrix
values数组中保存矩阵中非零元素。
column indices数组保存values数组中对应位置非零元素的列索引。
row offsets数组的下标表示每一行第一个非零元素的行索引,元素值为values数组的下标,最后一个元素值为非零元素的个数。

解码

遍历values数组,对其中的元素值x(下标记为index_X)去column indices数组中对应位置取出x在原矩阵中的列索引(记为col_index),然后在row offsets数组查找index_X,如果index_X在row offsets中,其在row offsets中的下标即为x在原矩阵中的行索引(记为row_index),如果index_X不在row offsets中,则使用上一个row_index值(因为编码时是逐行编码,且row offsets仅保存每行的第一个非零元素,所以当前x与上一x在同一行)。

Compressed Sparse Column (CSC)同理

相关文章:

  • 2021-10-20
  • 2022-12-23
  • 2022-12-23
  • 2021-06-16
  • 2021-09-25
  • 2021-10-11
  • 2021-07-24
  • 2021-09-22
猜你喜欢
  • 2021-08-06
  • 2022-12-23
  • 2021-05-17
  • 2022-12-23
  • 2021-09-08
  • 2021-11-07
相关资源
相似解决方案