1.Eigen是什么?
eigen是c++的一个关于线性代数的第三方库,使用该库函数可以实现线性代数运算,矩阵和矢量运算,数值分析及其相关的算法。
2.Eigen在ubuntu进行安装
sudo apt-get install libeigen3-dev
3.配置环境
在学习ROS时,遇到库函数Eigen,作用是计算三维空间的位置距离,在编译的时候会在包下产生CMakeList.txt文件,我们需要将相应的依赖包填写在CMakeList.txt终:
(1)find_package(……Eigen3 REQUIRED)
(2)find_package(……Eigen3 REQUIRED)
4.头文件
#include <Eigen/Eigen>
5.基本内容
(1)矩阵
Eigen::MatrixXd
eg:
Eigen::MatrixXd m(3, 3);
创建了一个 3*3的矩阵。
MatrixXd m = MatrixXd::Random(3, 3);
创建了一个 3*3的矩阵,并随机赋值。
矩阵数据的获取:
m.rows();//获取行数
m.cols();//获取列数
m.size();//获取系数
修改行和列:
m.resize(4, 4);
(2)向量
VectorXd
VectorXd表示列向量。
eg:定义并初始化
VectorXd v(3);
v << 1, 2, 3;
v(3)相当于一个3*1的矩阵
注意这里初始化采用逗号进行间隔: v << 1, 2, 3; 这是 Eigen 提供的一种逗号初始化。
Vector3d表示直接初始化为 [1,2,3]的列向量