跳转到内容
新建笔记

Eigen3

Eigen | Eigen: Quick reference guide | Eigen: Main Page

终端窗口
tac /usr/include/eigen3/Eigen/src/Core/util/Macros.h # tac表示从文本的后面往前输出, 版本查看
模块名头文件包含内容
Core#include <Eigen/Core>矩阵和数组类,基本线性代数(包括三角和自伴乘积),数组操作
Geometry#include <Eigen/Geometry>变换、平移、缩放、二维和三维旋转(四元数、角度轴)
LU#include <Eigen/LU>求逆、行列式、LU分解及求解器(FullPivLU, PartialPivLU)
Cholesky#include <Eigen/Cholesky>LLT和LDLT Cholesky分解及求解器
Householder#include <Eigen/Householder>Householder变换;被多个线性代数模块使用
SVD#include <Eigen/SVD>SVD分解及最小二乘求解器(JacobiSVD, BDSV)
QR#include <Eigen/QR>QR分解及求解器(HouseholderQR, ColPivHouseholderQR, FullPivHouseholderQR)
Eigenvalues#include <Eigen/Eigenvalues>特征值、特征向量分解(EigenSolver, SelfAdjointEigenSolver, ComplexEigenSolver)
Sparse#include <Eigen/Sparse>稀疏矩阵存储及相关基本线性代数(SparseMatrix, SparseVector)
Dense#include <Eigen/Dense>包括Core, Geometry, LU, Cholesky, SVD, QR, 和Eigenvalues头文件
Eigen#include <Eigen/Eigen>包括Dense和Sparse头文件(整个Eigen库)
#include <iostream>
#include <Eigen/Dense> // Eigen头文件,<Eigen/Dense>包含Eigen库里面所有的函数和类
int main()
{
Eigen::MatrixXd m(2,2); // MatrixXd 表示的是动态数组,初始化的时候指定数组的行数和列数
m(0,0) = 3; //m(i,j) 表示第i行第j列的值,这里对数组进行初始化
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
std::cout << m << std::endl; // eigen重载了<<运算符,可以直接输出eigen矩阵的值
}