如何将稀疏矩阵乘以密集的martix与本征?

时间:2015-06-23 15:14:48

标签: c++ eigen

我试图将稀疏矩阵乘以C ++中Eigen中的密集矩阵(当然匹配的维度)。以下似乎不起作用。

这是一个MWE:

  #include <Eigen/Dense>
  #include <Eigen/Sparse>

  using namespace Eigen;

  int main()
  {
        SparseMatrix<double> s;
        s.resize(3,3);
        MatrixXf d(3,3);

        MatrixXf d2(3,3);

        // gives an error
        s*d

        // doesn't give an error
        d*d2
 }

编辑:这里的页面表明它应该顺利运行,但它不会...... http://eigen.tuxfamily.org/dox/group__TutorialSparse.html

1 个答案:

答案 0 :(得分:2)

你的问题不是稀疏密集,而是混合类型,不允许使用Xhich。稀疏矩阵的类型为double,而密集矩阵的类型为float(MatrixX F )。将MatrixXf更改为MatrixXd(或转换为double),它可以正常工作。