Eigen库是一个开源的矩阵运算库,其利用C++模板编程的思想,构造所有矩阵通过传递模板参数形式完成。由于模板类不支持库链接方式编译,而且模板类要求全部写在头文件中,从而导致导致Eigen库只能通过开源的方式供大家使用,并且只需要包含Eigen头文件就能直接使用。
Eigen库中矩阵为其基本数据类型,向量也是一种特殊的矩阵。其所有矩阵数据类型都是由一个模板类Matrix生成。
Matrix 类有6个模板参数,现在我们了解前三个足够。剩下的三个参数都有默认值.
Matrix 的三个强制的模板参数:
Matrix
完整模板参数:
Matrix
Scalar 就是矩阵元素标量类型。
Eigen中提供了许多typedefs ,例如Matrix4f 是4*4的float型矩阵
typedef Matrix Matrix4f;
在Eigen中,vectors 只是一种特殊形式的矩阵,有一行或者一列。在大多数情况下一列比较多,这样的向量也叫做列向量,也简称向量。其他情况叫做行向量。
例如typedef Vector3f 是一个(列)向量,它的定义如下:
typedef Matrix Vector3f;
同样我们也提供了行向量的定义:
typedef Matrix RowVector2i;
动态矩阵和静态矩阵:动态矩阵是指其大小在运行时确定,静态矩阵是指其大小在编译时确定。
MatrixXd:表示任意大小的元素类型为double的矩阵变量,其大小只有在运行时被赋值之后才能知道。
Matrix3d: