Matrix Class 矩阵类
Vector Class 向量类
Array Class 数组类
Converting Array to Matrix 将数组转换为矩阵
Converting Matrix to Array 将矩阵转换为数组
Initialization 初始化
Accessing Elements (Coefficient) 访问元素(系数)
Accessing via parenthesis 通过括号访问
Accessing via pointer to data 通过指针访问数据
Row Major Access 行优先访问
Accessing a block of data 访问数据块
Reshaping, Resizing, Slicing 重塑,调整大小,切片
Tensor Module 张量模块
Matrix Class 矩阵类
矩阵类有六个模板参数,前三个是必需的:
Eigen::Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
例如:
Eigen::Matrix<double, 2, 1> matrix;
如果维度在编译时已知,可以使用 Eigen::Dynamic
作为模板参数。例如:
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> matrix;
Eigen 提供了许多方便的 typedefs
来涵盖常见情况,这些矩阵(以及向量和数组)的定义形式如下:
Eigen::MatrixSizeTypeEigen::VectorSizeTypeEigen::ArraySizeType
Type 可以是:
i:整数,
f:浮点数,
d:双精度,
c:复数,
cf:复浮点数,
cd:复双精度。
Size 可以是 2、3、4(固定大小方阵)或 X
(动态大小)。
例如,Matrix4f
是一个 4x4
的浮点矩阵。Eigen 的定义如下:
typedef Matrix<float, 4, 4> Matrix4f;
或者
typedef Matrix<double, Dynamic, Dynamic> MatrixXd;
更多示例:
Eigen::Matrix4d m; // 4x4 双精度
Eigen::Matrix4cd objMatrix4cd; // 4x4 复数双精度
//a 是一个 3x3 矩阵,具有一个未初始化系数的静态 float[9] 数组,Eigen::Matrix3f a;
//b 是一个动态大小的矩阵,其大小当前为 0x0,并且其系数数组尚未分配。Eigen::MatrixXf b;
/