Vector3d的特征矩阵给出了奇怪的误差

时间:2018-01-30 17:39:05

标签: c++ eigen eigen3

我需要3D矢量容器并尝试过:

//typedef Eigen::Matrix<Vector3d, -1, 1> Field3X;
typedef Eigen::Matrix<Vector3d, Dynamic, 1>  Field3X;
Field3X vecMat(3);
Vector3d v(1.0,3.0,4.0);

vecMat(0)=  v;
vecMat(1) = v;
vecMat(2) = v;
cout << "Here is vecMat:\n" << vecMat << endl;

调用cout行会出现奇怪的错误:

Error   3   error C2665: 'log10' : none of the 3 overloads could convert all 
the argument types  d:\eigen-eigen-
5a0156e40feb\eigen\src\Core\NumTraits.h 34  1   

有多个Vector3d对象数组的更好方法是什么? 附:是的我知道,我可以使用带对齐宏的stl向量,但是哪一个更适合更快地访问操作?

1 个答案:

答案 0 :(得分:1)

未为要显示的类型定义/重叠流输出运算符<<。您可以改为使用它:

for (int i = 0; i < vecMat.size(); ++i) {
 cout << "Here is vecMat(" << i << "):\n" << vecMat(i) << endl;
}