Eigen——C++矩阵运算库

Eigen是一个开源的C++库,专注于线性代数运算,提供矩阵和向量操作。本文介绍了如何下载配置Eigen,以及矩阵类Matrix和Array的使用,包括构造、初始化、赋值、大小调整和运算等基本操作。此外,还提到了块操作和特殊矩阵的创建。对于动态矩阵,resize()方法会改变大小并析构原有数据,而conservativeResize()则可在不破坏原有数据的情况下调整大小。
摘要由CSDN通过智能技术生成

1.Eigen是什么?

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

2.下载配置
  • 官网:Eigen官网,下载解压缩可以重命名为eigen3。官网介绍使用Eigen,只需要下载它的源码,事实上,Eigen子目录中的头文件是使用Eigen编译程序所需的惟一文件。所有平台的头文件都是相同的。不需要使用CMake或安装任何东西。
    在这里插入图片描述

  • 写一个简单的项目,包含头文件。注:Eigen使用源代码方式提供用户使用,在使用时只需要包含Eigen头文件即可使用。

    #include <iostream>
    #include <Eigen/Dense>
    using Eigen::MatrixXd;
    int main()
    {
         
      MatrixXd m(2,2); //MatrixXd类型,代表一个任意大小的矩阵
      m(0,0) = 3;
      m(1,0) = 2.5;
      m(0,1) = -1;
      m(1,1) = m(1,0) + m(0,1);
      std::cout << m << std::endl;
    }
    
  • 项目——属性——C/C++——常规——附加包含目录添加该库位置就好了,这个操作是指包含头文件,没有链接到的库。在编译上述程序时,只需要一个操作,即让编译器能够找到Eigen的头文件。放置Eigen源代码的目录必须位于包含路径中。

官网安装和配置说明(包含使用的简单介绍):Getting started
图文详细:vs2013配置Eigen库

3.使用

官网的快速参考指南:Quick reference guide

3.1 模块和头文件

Eigen库被分为一个核心模块和几个别的模块,每个模块有一个对应的头文件,使用该模块需要包含对应头文件。还提供了Dense和Eigen头文件方便同时使用多个模块。

模型 头文件 说明
Core #include <Eigen/Core> 包含Matrix和Array类,基础的线性代数运算和数组操作。
Geometry #include <Eigen/Geometry> 包括平移、缩放、2D\3D旋转变换、四元数、轴旋转变换
LU #include <Eigen/LU> 包含求逆,行列式,LU分解
Cholesky #include <Eigen/Cholesky> 包含LLT和LDLT Cholesky分解
Householder #include <Eigen/Householder> householder变换,此模块由几个线性代数模块使用
SVD #include <Eigen/SVD> 奇异值分解
QR #include <Eigen/QR> QR分解
Eigenvalues #include <Eigen/Eigenvalues> 特征值、特征向量
Sparse #include <Eigen/Sparse> 稀疏矩阵存储及相关的基本线性代数
* #include <Eigen/Eigen> 包含Dense和Sparse头文件(Eigen全部库)
3.2 每个具体使用,下面有相对官网的中文博客

Eigen库使用指南
Eigen: C++开源矩阵计算工具——Eigen的简单用法
Eigen矩阵库使用

  • 24
    点赞
  • 187
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值