稀疏矩阵(Sparse Matrix)有不同的储存方式(数据结构),这里介绍几种常见的1.
Banded 矩阵只储存矩阵主对角线上下的若干条对角线,上带宽和下带宽分别指定主对角线上面和下面有几条对角线,例如三对角矩阵的上带宽和下带宽都是 1.带内即使有矩阵元为零也必须储存.这样就可以按照 row major 或者 column major 来储存.
COO 格式列出非零矩阵元和对应的行标列标.通常将它们储存为三个数组 a,ia,ja,顺序任意.除此之外,有时还需要储存三个数组的长度 nnz(none zero)以及矩阵的尺寸.
也叫 Compressed Row Storage(CRS),这种格式做矩阵与矢量相乘较快.
CRS 格式储存为三个数组 a,ia,ja,非零矩阵元按照 row major 的顺序储存,第 n 行矩阵元是 a(ia(n) : ia(n+1)-1),ja 是对应矩阵元的列标.
也叫 Compressed Column Storage(CCS),与 CRS 一样,只是改为 column major.
1. ^ 参考 Wikipedia 的 Sparse Matrix 词条