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

本文介绍了Eigen,一个C++的线性代数模板库,用于矩阵和向量运算、数值求解及相关算法。内容包括安装Eigen、矩阵和向量的定义与初始化、基本运算,以及Array和Matrix的转换。Eigen支持动态大小和固定大小的矩阵,提供了丰富的矩阵运算功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

9ae098833879dbcd41537faba0cc2782.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模块。

042b621f3cac016defd7c36f9821bbbc.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;

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

Matrix<double, 10, 5>Matrix<double, 10, Dynamic>Matrix<double, Dynamic, 5>Matrix<double, Dynamic, Dynamic>A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值