版权声明:请注明转发出处 https://blog.csdn.net/mafucun1988/article/details/89372038
1. 简介
Eigen是一个C++线性运算的模板库:他可以用来完成矩阵,向量,数值解等相关的运算。Eigen库的使用相当方便,将压缩包中的Eigen文件夹拷贝到项目目录下,直接包含其中的头文件即可使用,省去了使用Cmake进行编译的烦恼。
Core | #include <Eigen/Core> | Matrix and Array classes, basic linear algebra (including triangular and selfadjoint products), array manipulation |
Geometry | #include <Eigen/Geometry> | Transform, Translation, Scaling, Rotation2D and 3D rotations (Quaternion, AngleAxis) |
LU | #include <Eigen/LU> | Inverse, determinant, LU decompositions with solver (FullPivLU, PartialPivLU) |
Cholesky | #include <Eigen/Cholesky> | LLT and LDLT Cholesky factorization with solver |
Householder | #include <Eigen/Householder> | Householder transformations; this module is used by several linear algebra modules |
SVD | #include <Eigen/SVD> | SVD decomposition with least-squares solver (JacobiSVD) |
QR | #include <Eigen/QR> | QR decomposition with solver (HouseholderQR, ColPivHouseholderQR, FullPivHouseholderQR) |
Eigenvalues | #include <Eigen/Eigenvalues> | Eigenvalue, eigenvector decompositions (EigenSolver, SelfAdjointEigenSolver,ComplexEigenSolver) |
Sparse | #include <Eigen/Sparse> | Sparse matrix storage and related basic linear algebra (SparseMatrix, DynamicSparseMatrix,SparseVector) |
#include <Eigen/Dense> | Includes Core, Geometry, LU, Cholesky, SVD, QR, and Eigenvalues header files | |
#include <Eigen/Eigen> | Includes Dense and Sparse header files (the whole Eigen library) |
2. 下载Eigen最新版本
3. .pro文件中包含头文件
- INCLUDEPATH += $$PWD/Eigen
4. 简单使用
#include<Eigen/Dense>
#include <Eigen/Core>
using namespace Eigen;
Vector4d v4;
int rows=5, cols=5;
MatrixXf m(rows,cols);
m << (Matrix3f() << 1, 2, 3, 4, 5, 6, 7, 8, 9).finished(),
MatrixXf::Zero(3,cols-3),
MatrixXf::Zero(rows-3,3),
MatrixXf::Identity(rows-3,cols-3);
cout << m;
运行结果: