私はEigenライブラリを使って基本的な行列操作を行います。しかし、私は3 * 3行列から正しい転置行列を得ることさえできませんでした。以下は、単純なコードサンプルです:なぜEigen(バージョン3.2.5)が正しい転置行列を得ることができないのですか
#include <iostream>
#include <Eigen/Core>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main(int argc, char *argv[])
{
Matrix3d m;
m << 1, 2, 3, 4, 5, 6, 7, 8, 9;
cout << "before transpose: " << endl;
cout << m;
cout << endl;
m = m.transpose();
cout << "after transpose: " << endl;
cout << m;
return 0;
}
印刷結果は次のとおりです。
before transpose:
1 2 3
4 5 6
7 8 9
after transpose:
1 2 3
2 5 6
3 6 9
結果はかなり奇妙です。私は自分のコードに何が問題なのか疑問に思っていましたか?私はEigenがそのような明白なバグを持っていなかったと思う。
を使用するように、
または、より良い:あまり好ましい方法では、一時的に使用することですいわゆるデバッグモード)、問題の原因を示すアサーションが必要です。 – ggael