矩阵是一种重要的数据结构,它可以表达很丰富的内容。矩阵可以分为两类,一类是稠密(dense)矩阵或称为满阵(full matrix),其特点是多数元素都非零;第二类矩阵称为稀疏矩阵(sparse matrices),特点是多数元素都为零。之所以这样区分,是因为稀疏矩阵可以通过只存储非零元素(及其索引)而节省空间,并且稀疏矩阵在很多操作上可以优化。

  上一节讲述了稠密矩阵的基本操作,包括矩阵转置、矩阵向量相乘、矩阵相乘,本节来讨论这些操作当矩阵为稀疏阵时如何进行。本节先从稀疏矩阵的存储方式讲起(它是稀疏矩阵运算的基础),然后逐个讨论重要的矩阵操作。