我知道Eigen使用Matrix来表示向量,但对于模板化向量,我所知道的是使用像
这样的东西Eigen::Matrix<T,3,1> v;
是否有类似的东西
Eigen::Vector<T,3>
可以使用吗?
答案 0 :(得分:1)
所有Eigen :: Vector类型仅仅是typedef。 C ++ 11之前的所有C ++标准都不支持模板化的typedef(又名别名),而Eigen的编写也支持旧的标准,而不是C ++ 11。
如果您使用的是C ++ 11,则可以定义自己的模板化矢量别名
template <typename Type, int Size> using Vector = Eigen::Matrix<Type, Size, 1>;
然后按照您想要的方式使用
Vector<double, 10> vec;
顺便说一句,Eigen的矢量大小在2到4之间的typedef,即Eigen :: Vector2d,...,EigenVector4d。对于带有后缀f
和整数i
以及复数cd
,cf
的浮点数,存在相同的typedef。