6

この行を計算するたびに、このエラーが発生し続けます

double k = b.transpose()*Z.inverse()*b;

どこでEigen::MatrixXd Z(3,3), b(3,1);。キャストを試みましたが、運がありません。助言がありますか?

4

2 に答える 2

3

これは私にとってはうまくいくので、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;
}
于 2014-08-04T13:37:26.827 に答える