参考:https://blog.csdn.net/u012936940/article/details/79706280
- Matrix 类:
Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
其中Scalar是变量类型,如float,int等
RowsAtCompileTIme和ColsAtCompileTIme是矩阵的尺寸,分别是行和列
- Eigen常用定义:
Matrix4f 是4x4的folat型矩阵
typedef Matrix<float, 4, 4> Matrix4f;
- 向量定义:
向量只是一种特殊的矩阵,多数情况下使用的是列向量,一个3维列向量的定义如下:
typedef Matrix<float, 3, 1> Vector3f;
Eigen同样提供了行向量的方便定义的形式
typedef Matrix<int, 1, 2> RowVector2i;
4、参数Dynamic:
Eigen并不局限于在编译阶段指定矩阵的尺寸,前面提到的RowsAtCompileTIme和ColsAtCompileTIme参数可以取特殊值Dynamic,这代表编译时不能确定矩阵的尺寸,必须在运行时确定。Eigen中称为动态尺寸,编译时确定尺寸的矩阵称为固定尺寸的矩阵:
typedef Matrix<double, Dynamic, Dynamic> MatrixXd;
typedef Matrix<int, Dynamic, 1> VectorXi;
5、元素获取:
()操作也可以用于获取matrix矩阵元素。也就是小括号
[]操作符可以用于向量元素的获取,但是不能用于matrix