したがって、コードには次の行があります。
MatrixXd qdash = zeroCentredMeasurementPointCloud_.topLeftCorner(3, zeroCentredMeasurementPointCloud_.cols());
Matrix3d H = q * qdash.transpose();
Eigen::JacobiSVD<MatrixXd> svd(H, Eigen::ComputeThinU | Eigen::ComputeThinV);
今、私はそれが正しく初期化されていると確信しています(qdash
また、他の場所でもあります)。関与する最後の行は、プログラムが残っているとこのエラーをスローします。H
q
Eigen::JacobiSVD
Program received signal SIGSEGV, Segmentation fault.
0xb0328af8 in _list_release () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3
0 0xb0328af8 in _list_release () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3
1 0xb032a464 in __free () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3
2 0xb0329f7d in free () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3
IEを解放しようとすると、セグフォルトが発生していると思います。チュートリアルhereによると、この機能を使用するために必要なことは次のとおりです。
MatrixXf m = MatrixXf::Random(3,2);
JacobiSVD<MatrixXf> svd(m, ComputeThinU | ComputeThinV);
私の場合、なぜそれが失敗するのか誰にもわかりますか?