eigen 列向量转矩阵_快速入门矩阵运算——开源库Eigen

本文介绍了Eigen这一C++线性代数模板库,详细讲解了如何安装、使用Eigen,包括Matrix和Array类的定义、初始化,以及矩阵和数组的基本运算。通过实例展示了矩阵的加减乘除、转置、共轭和数组的元素级运算,强调了Eigen在矩阵运算中的便捷性。
摘要由CSDN通过智能技术生成


矩阵是数学中一个重要的工具,广泛应用于各种场景下的数值分析,例如,数字信号处理,图像处理等。我们如何在程序中使用矩阵进行运算呢?本文将为大家介绍一个开源的矩阵运算工具——Eigen。

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

Eigen是一个用于线性运算的C++ 模板库,支持 矩阵和矢量运算,数值分析及其相关的算法。

安装Eigen比较简单需要,从官网下载源码并解压即可,我现在的是最新的eigen-3.3.7版本。

官网下载地址:

http://eigen.tuxfamily.org/index.php?title=Main_Page

c723a6e832da5cf85b18da1e8a54fa79.png

我们可以进入Eigen目录,可以发现Eigen库主要包括如下几个模块组成:

  • Core:Matrix和Array类,基础的线性代数运算和数组操作;
  • Geometry:旋转,平移,缩放,2维和3维的各种变换;
  • LU:求逆,行列式,LU分解;
  • Cholesky:LLT和LDLT Cholesky分解;
  • Householder:Householder变换;
  • SVD:SVD分解;
  • QR:QR分解。
  • Eigenvalues:特征值,特征向量分解。
  • Sparse:稀疏矩阵的存储和运算。
  • Dense:包含了Core、Geometry、LU、Cholesky、SVD、QR、Eigenvalues等模块。
  • Eigen:包含了Dense和Sparse模块。
fa2203930ac90013e195fdef86a41c14.png

Eigen的食用方法非常之简单,在使用时我们只需要从解压后的文件目录中找到需要使用的库,然后,在源代码中包含相应的库即可食用了。因为Eigen是用模板写的模板库,所以只能把头文件包含进来使用。W君是在工程工作目录解压的,请参考如下代码包含Eigen库。

#include "eigen_3_3_7/Eigen/Eigen"

Matrix和Array模板类

Eigen库提供有Matrix和Array两种模板类。它们定义如下:

typedef Matrix MyMatrixType;typedef Array MyArrayType;

其中,通常我们会根据需要设置前三个参数,其它为默认值即可。

  • Scalar:指定元素类型,比如,float, double, bool, int 等。
  • RowsAtCompileTime:指定行数或者设置成动态(Dynamic);
  • ColsAtCompileTime:指定列数或者设置成动态(Dynamic);
  • Options:标志位,可以是ColMajor或RowMajor,默认是ColMajor;

从上面可以看出,行数和列数是允许固定大小,也允许动态大小的,所以下面的几种类型是可以的。

MatrixMatrixMatrixMatrixArrayArray

另外,我们还可以使用Eigen库已经重定义的类型,下面是一些简单的例子可参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值