【问题标题】:How to convert sparse matrix to dense matrix in Eigen如何在 Eigen 中将稀疏矩阵转换为密集矩阵
【发布时间】:2013-03-07 05:59:40
【问题描述】:

是否有一些简单快捷的方法可以将稀疏矩阵转换为密集的双精度矩阵?

因为我的SparseMatrix不再稀疏,而是经过一些矩阵乘积后变得稠密。

我还有一个问题:Eigen 库的性能非常好,这怎么可能?不明白为什么,因为只有头文件,没有编译源码。

【问题讨论】:

  • 性能与代码是在.h文件还是.cpp文件有什么关系?
  • 要了解 Eigen 是如何工作的以及是什么让它变得更快,请更好地查看他们的文档(例如 What happens inside)(在任何情况下查看您的问题数量都会很有用),然后选择准备一本关于高级 C++ 和模板编程的书。无论如何,如果在此之后您仍然不确定它是如何工作的一些细节,您应该在此处删除该问题并为其创建一个新问题。

标签: c++ matrix sparse-matrix eigen


【解决方案1】:

让我们声明两个矩阵:

SparseMatrix<double> spMat;
MatrixXd dMat;

从稀疏到密集:

dMat = MatrixXd(spMat);

密集到稀疏:

spMat = dMat.sparseView();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2021-11-25
    • 2017-07-02
    • 1970-01-01
    • 2023-03-16
    • 2014-12-21
    • 2018-05-03
    相关资源
    最近更新 更多