Eigen库
Eigen 是 C++ 中最著名的开源线性代数库之一,以高效、流形(Header-only)著称,只有头文件,所以不需要编译,直接#include就能用。
使用 Eigen 时,常用的头文件有以下几个:
#include <Eigen/Dense>:包含大多数稠密矩阵、向量的核心操作及部分线性方程组求解器。 #include <Eigen/Geometry>:包含旋转、变换等几何相关操作(常用于机器人和计算机视觉)。1. 矩阵
Eigen 中最核心的模板类是Matrix<typename Scalar, int Rows, int Cols>。为了方便使用,Eigen 内置了很多别名。
定长矩阵(编译时确定大小,速度快,适合小矩阵):
Matrix3f:3x3 的 float 矩阵 Matrix4d:4x4 的double 矩阵动态矩阵(运行时大小可变,适合大矩阵):
MatrixXf:动态大小的 float 矩阵 MatrixXd:动态大小的 double 矩阵 MatrixXcd:动态大小的 double 复数矩阵MatrixXd m1 = MatrixXd::Ones(3, 3); // Ones:3x3 的全 1 矩阵