C++中特征对角矩阵类型的高效存储



我想用密集矩阵和对角矩阵进行矩阵乘法。对角矩阵是使用vec.asDiagonal()从向量生成的。

我想知道对角矩阵类型是只存储对角线,还是除了对角线之外充满零的密集矩阵?我想对角矩阵应该是Eigen稀疏矩阵的子矩阵。我搜索了文档并找到了这个

https://eigen.tuxfamily.org/index.php?title=SpecialMatrix#Diagonal_matrix,建议DiagonalMatrix继承自MatrixBase,而不是SparseMatrix。这是否意味着内存存储效率低下?

DiagonalMatrix仅将对角线存储为密集向量。vec.asDiagonal()DiagonalMatrix的返回类型都继承自DiagonalBase而不是MatrixBase(doc(。它们本质上是相同的:一个存储对密集向量的引用,而另一个是对角向量的所有者。

相关内容

  • 没有找到相关文章

最新更新