矩阵的使用可参考系列博客:https://blog.csdn.net/caomin1hao/category_7898685.html
1.Eigen::Matrix<float, 3, 4>
定义一个 3*4
的浮点型矩阵
2.Eigen::Matrix4f
4*4
矩阵,定义见下:
typedef Matrix<float, 4, 4> Matrix4f; // 4*4矩阵
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.Eigen::Vector3f
3*1
列向量,定义见下:
typedef Matrix<float, 3, 1> Vector3f; //列向量,3*1
4.Eigen::RowVector2i
1*2
行向量,定义见下:
typedef Matrix<int, 1, 2> RowVector2i; //行向量 1*2
Matrix3f a;
a是一个3*3
的矩阵,分配了float[9]
的空间,但未初始化内部元素;
MatrixXf b;
b是一个动态大小的矩阵,定义是未分配空间(0*0)
。
MatrixXf a(10,15);
a是一个10*15的动态大小的矩阵,分配了空间但未初始化元素
5. 块操作
-
块操作
块是
matrix
或array
中的矩形子部分
。 -
使用块
函数
.block()
,有两种形式
operation | 构建一个动态尺寸的block | 构建一个固定尺寸的block |
---|---|---|
起点(i,j), 块大小(p,q) | .block(i,j,p,q) | .block< p,q >(i,j) |
Eigen中,索引从0开始。
求矩阵的逆:
.inverse()