2015-06-23 264 views
0

我想用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

回答

2

你的問題是不疏,密,但是混合類型,Xhich是不允許的。您的稀疏矩陣類型爲double,而密集矩陣類型爲float(MatrixX F)。將MatrixXf更改爲MatrixXd(或強制轉換爲double),並且工作正常。