「C++: Eigen」第一章 第一节 The Matrix class

Eigen是一个高效的C++模板库,专注于矩阵和向量运算,支持多种矩阵类型、矩阵分解及几何问题求解。其特点是运行速度快且算法稳定。本文详细介绍了Eigen的Matrix类,包括静态和动态类型、变量构建、元素访问、大小调整以及初始化方法。此外,还提及了Eigen的便捷类型定义和可选模板参数。
摘要由CSDN通过智能技术生成

参考链接:Eigen Main Page

Eigen 简介

Eigen是一个C++线性代数模板库,包括矩阵,向量,数值求解器以及相关算法。

Eigen支持任意矩阵大小和矩阵类型、标准数据类型、矩阵分解、几何特征求解、非线性优化、矩阵函数、多项式拟合傅里叶变换等。

Eigen的运行速度非常快,支持的算法也是稳定求解的。

Eigen 文档路线

简版开始:Getting started guide
长版开始:Long tutorial
所有内容快速索引页面:Quick reference

完整Eigen命名空间(包括了Eigen中定义的所有符号):Eigen Namespace Reference

Extending/Customizing Eigen包括了一些扩展Eigen特征和支持定制标量类型的内容

General topics包括了一些预处理器指令、控制断言、多线程、MKL 支持等一些 Eigen 的内部见解内容。

最后,Eigen还维护了一个非官方支持的模组,这些模块的内容由用户自行构建。

简版开始:Getting started guide

这部分只是个5min的简短教程,就不写了。

长版开始:Long tutorial

长版教程在官方指导的Chapters部分,一共包含四个chapter。

1 矩阵和数组操作(Dense matrix and array manipulation)

1.1 矩阵类(The Matrix class)

Getting started guide模块主要目的是Eigen的快速上手。这部分主要对Eigen中常见的Matrix模板类(Matrix Class)进行说明。Matrix顾名思义就是矩阵,大小为n✖️n,向量(Vector)是形状为1✖️n的矩阵。

1.1.1 Matrix类的参数

Matrix类一共有6个参数,前三个是强制(填写)参数,后三个是默认参数。前三个参数如下:

Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>

其中:

  • Scaler:标量,typename表示标量类型
  • RowsAtCompileTime, ColsAtCompileTime:分别表示行、列数量

Eigen提供一些便利的类型定义来表示常用的变量,例如,Matrix4f 表示4✖️4方阵(4),矩阵元素类型为float(f):

typedef Matrix<float, 4, 4> Matrix4f;
1.1.2 Vector类

Vector是Matrix的特殊情况,它的行或列中有一个值为1,行为1的矩阵称为列向量,列为1的矩阵称为行向量。列向量(col-vectors)和行向量(row-vectors)的定义分别为:

typedef Matrix<float, 3, 1> Vector3f;  // 列向量
typedef Matrix<int, 1, 2> RowVector2i;  // 行向量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值