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