一、引言
Eigen是线性代数的C ++模板库,提供矩阵,向量,数值求解器和相关算法,并具有较高的运算速度,经常采用。
二、内置函数使用说明
1) 使用举例
- main.cpp
#include <iostream>
#include "Eigen/Dense"
using namespace std;
int main()
{
Eigen::Matrix3d F;
F <<
1, 0, 0,
0, -1, 0,
0, 0, 1;
Eigen::Vector3d m;
m(0) = 3;
m(1) = 2.5;
m(2) = -1;
Eigen::Vector3d res = F*m;
cout<<res<<endl;
return 1;
}
- 编译所需CMakelist
# cmake version
cmake_minimum_required(VERSION 2.8)
# project name
project( eigen_test )
# eigen
SET(EIGEN3_INCLUDE_DIR /usr/include/eigen3)
INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})
# Generate executable file
add_executable( Demo main.cpp )
2) 利用小矩阵构造大矩阵
#include <iostream>
#include "Eigen/Dense"
using namespace std;
int main()
{
Eigen::Matrix4d T;
Eigen::Matrix3d F;
F <<
0.51, 0.2, 0.57,
0.86, -1, -0.67,
0.5, 0.3, 0.83;
T.topLeftCorner(3,3) = F;
Eigen::Vector3d vec(5,8,9);
T.col(3).head(3) << vec(0), vec(1), vec(2);
T.row(3) << 0,0,0,1;
cout << "T <<" << endl << T << endl ;
}
三、参考资料
版权声明:本文为yph001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。