この行を計算するたびに、このエラーが発生し続けます
double k = b.transpose()*Z.inverse()*b;
どこでEigen::MatrixXd Z(3,3), b(3,1);
。キャストを試みましたが、運がありません。助言がありますか?
これは私にとってはうまくいくので、VectorXd
結果が行列であることをEigenがコンパイル時に認識できるように b が a として宣言されていることを確認してください。したがって1x1
、安全にスカラー値に変換できます。自己完結型の例を次に示します。
#include <Eigen/Dense>
using namespace Eigen;
int main() {
int n = 10;
VectorXd b(n);
MatrixXd Z(n,n);
double k = b.transpose() * Z.inverse() * b;
}