Eigen库的基本使用

这篇具有很好参考价值的文章主要介绍了Eigen库的基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.初始化矩阵方法:

1.1 静态矩阵:

1.1.1 可以用重载后的<< 进行直接赋值,例如:

Matrix<double,3,3> matrix;
matrix << 1,2,3,4,5,6,7,8,9;

1.1.2 可以用Random(),在-1到1之间随机赋值

Matrix<double,3,3> matrix = Matrix<double,3,3>::Random();

1.1.3 可以用Identity(),将第i行的第i个元素赋值为1,其余元素为0

Matrix<double,4,4> matrix = Matrix<double,4,4>::Identity();

1.1.4 可以用Zero(),将矩阵元素全赋值为0

Matrix<double,4,4> matrix = Matrix<double,4,4>::Zero();

1.2 动态矩阵:

1.2.1可以通过宏定义行数和列数来模拟动态矩阵

 #define row 20
#define col 30
Matrix<double,row,col> matrix;

1.2.2 可以用Random(),在-1到1之间随机赋值,同时指定了动态矩阵的行数和列数

MatrixXd matrix = MatrixXd::Random(5,6);

1.2.3 可以用Identity(),将第i行的第i个元素赋值为1,其余元素为0,同时指定了动态矩阵的行数和列数

MatrixXd matrix = MatrixXd::Identity(5,6);

1.2.4 通过Zero(row,col)来将矩阵赋值成row,col的0矩阵,同时指定了动态矩阵的行数和列数:

MatrixXd matrix = MatrixXd::Zero(5,6);

注意:动态矩阵MatrixXd的初始化也可以像第一个一样利用宏定义行和列。

2. 从已有矩阵中取出其中元素的方法:

2.1 可使用block(Index startRow, Index startCol, Index blockRows, Index blockCols)方法,

startRow是起始行数,startCol是起始列数,blockRows是一共需要取几行元素,blockCols是一共需要取几行列数
例如:文章来源地址https://www.toymoban.com/news/detail-632081.html

MatrixXd matrix = MatrixXd::Random(30,30);
Matrix3d I = matrix.block(0,0,3,3);

到了这里,关于Eigen库的基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++矩阵计算-杂记(包含Eigen库的安装)

    C++可以使用多种方法进行矩阵计算,其中常见的两种方式为使用已有的矩阵库或手写矩阵运算代码。 在C++中可以使用许多开源矩阵库进行矩阵计算,比如Eigen、Armadillo等。这些库提供了简单易用的API,可以完成矩阵的基本运算,如加减乘除、转置、求逆、求特征值和特征向量

    2024年02月02日
    浏览(32)
  • Windows VsCode 配置 Eigen 库 - C++矩阵计算库的配置 - 手把手教程

    Eigen是一个用来进行矩阵处理的C++库,除了 C++ 标准库之外,Eigen 不需要其他任何依赖项。 官网 https://eigen.tuxfamily.org 直接点击最新版(当前是3.4.0)对应的zip文件下载即可。 解压后文件目录如下: 其中 Eigen 就是存放要Include的头文件的地方。 最好新建一个文件夹专门用来写Ei

    2023年04月08日
    浏览(26)
  • 【Eigen库使用】角轴、旋转矩阵、欧拉角、四元数转换

    在slam中经常用到的四种描述机器人orientation的变量,他们之间可以相互转化,使用Eigen库可以很容易的做到这一点, 需要特别关注的是:欧拉角与其余量之间的转换关系 : 1)首先要明确的是, 必须要明确欧拉角的旋转次序 ,你可以选择RPY、YPR等方式,在相同的orientation下,

    2024年01月18日
    浏览(36)
  • 【C++】开源:Eigen3矩阵与线性代数库配置使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍Eigen3线性代数模板库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Gitlab地址: https://gitlab.com/libeigen/eigen 官网:

    2024年02月14日
    浏览(32)
  • 矩阵分解及其Eigen实现

    主要是用来记录自己的学习过程,内容也主要来自于网上的各种资料,然后自己总结而来,参考的资料都以注明,感谢这些作者的分享。如果内容有误,请大家指点。 定义        将矩阵等价为两个矩阵 L L L 和 U U U 的乘积 ,其中 L L L 和 U U U 分别是单位下三角矩阵和上三角

    2024年02月03日
    浏览(33)
  • [Eigen中文文档] 稀疏矩阵操作

    文档总目录 英文原文(Sparse matrix manipulations) 处理和解决稀疏问题涉及各种模块,总结如下: 模块 头文件 内容 SparseCore #includeEigen/SparseCore SparseMatrix和SparseVector类、矩阵集合、基本稀疏线性代数(包括稀疏三角求解器) SparseCholesky #includeEigen/SparseCholesky 直接稀疏LLT和LDLT Chole

    2024年02月10日
    浏览(45)
  • [Eigen中文文档] 矩阵与向量运算

    专栏总目录 英文原文(Matrix and vector arithmetic) 本文章旨在提供有关如何使用 Eigen 在矩阵、向量和标量之间执行算术操作的概述和一些详细信息。 介绍 Eigen 通过重载常见的 C++ 算术运算符(如 + 、 - 、 * )或通过特殊方法(如 dot() 、 cross() 等)提供矩阵/向量算术运算。对于

    2024年01月24日
    浏览(36)
  • eigen旋转矩阵与欧拉角的转换

    2024年02月11日
    浏览(36)
  • Eigen 对矩阵的每个元素取绝对值

      使用Eigen库对矩阵的每一个元素进行取绝对值操作非常简单。可以使用array()函数将矩阵转换为数组,然后使用abs()函数对数组中的每个元素取绝对值,最后使用matrix()函数将数组转换回矩阵。下面是一个示例代码:

    2024年02月04日
    浏览(31)
  • c++矩阵计算性能对比:Eigen和GPU

    生成随机矩阵 生成随机矩阵有多种方式,直接了当的方式是使用显式循环的方式为矩阵的每个元素赋随机值。 另一种方式是使用Eigen库,它提供了矩阵运算的库。 生成随机矩阵: 计算矩阵点积 使用显式循环计算 直接上代码: 使用Eigen库 代码: 使用GPU 代码片断: 结果分析

    2024年02月12日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包