【Eigen教程】矩阵、数组和向量类(二)

  • 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;
/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值