首页 > 其他分享 >EIGEN3矩阵库(转)

EIGEN3矩阵库(转)

时间:2023-02-01 16:33:47浏览次数:61  
标签:Eigen solver 矩阵 支持 算法 EIGEN3 模板

类似Matlab的方式操作矩阵,可以在这里查看官方的与Maltab的对应关系,个人感觉单纯讲和Matlab的对应的话,可能不如Armadillo对应的好,但功能绝对强大。Eigen包含了绝大部分你能用到的矩阵算法,同时提供许多第三方的接口。Eigen一个重要特点是没有什么依赖的库,本身仅有许多头文件组成,因此非常轻量而易于跨平台。你要做的就是把用到的头文件和你的代码放在一起就可以了。Eigen的一些特性:

  • 支持整数、浮点数、复数,使用模板编程,可以为特殊的数据结构提供矩阵操作。比如在用ceres-solver进行做优化问题(比如bundle adjustment)的时候,有时候需要用模板编程写一个目标函数,ceres可以将模板自动替换为内部的一个可以自动求微分的特殊的double类型。而如果要在这个模板函数中进行矩阵计算,使用Eigen就会非常方便。
  • 支持逐元素、分块、和整体的矩阵操作。
  • 内含大量矩阵分解算法包括LU,LDLt,QR、SVD等等。
  • 支持使用Intel MKL加速
  • 部分功能支持多线程
  • 稀疏矩阵支持良好,到今年新出的Eigen3.2,已经自带了SparseLU、SparseQR、共轭梯度 (ConjugateGradient solver)、bi conjugate gradient stabilized solver等解稀疏矩阵的功能。同时提供SPQRUmfPack等外部稀疏矩阵库的接口。
  • 支持常用几何运算,包括旋转矩阵、四元数、矩阵变换、AngleAxis(欧拉角与Rodrigues变换)等等。
  • 更新活跃,用户众多(Google、WilliowGarage也在用),使用Eigen的比较著名的开源项目有ROS(机器人操作系统)、PCL(点云处理库)、Google Ceres(优化算法)。OpenCV自带到Eigen的接口。

总体来讲,如果经常做一些比较复杂的矩阵计算的话,或者想要跨平台的话,非常值得一用。

标签:Eigen,solver,矩阵,支持,算法,EIGEN3,模板
From: https://www.cnblogs.com/tjmxf1976/p/17083259.html

相关文章

  • LeetCode:2319. 判断矩阵是否是一个 X 矩阵
    classSolution{public:boolcheckXMatrix(vector<vector<int>>&grid){intn=grid.size();boolflag=true;for(inti=0;i<n;......
  • 【Matlab学习2.3】矩阵求值
    方阵的行列式值把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为所对应的行列式的值。det(A):求方阵A所对应的行列式的值。 例2.3.1:验证det(A-1)=1/det(......
  • 杨氏矩阵
    有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。要求:时间复杂度小于O(N);......
  • 【Matlab学习2.2】矩阵变换
    对角阵对角阵:只有对角线上有非零元素的矩阵。 数量矩阵:对角线上的元素相等的对角矩阵。 单位矩阵:对角线上的元素都为1的对角矩阵。提取矩阵的对角线元素diag(A):提取矩......
  • 2319. 判断矩阵是否是一个 X 矩阵
    2319.判断矩阵是否是一个X矩阵题解:模拟classSolution{publicbooleancheckXMatrix(int[][]grid){intn=grid.length;for(inti=0;......
  • 【ABAQUS 二次开发笔记】输出单元刚度矩阵
    目录相关的关键字必须的参数可选参数使用关键字输出到mtx文件输出到dat文件参考资料相关的关键字*ELEMENTMATRIXOUTPUT此keyword用于将元素刚度矩阵和质量矩阵(如果可......
  • [LeetCode] 1329. Sort the Matrix Diagonally 将矩阵按对角线排序
    A matrixdiagonal isadiagonallineofcellsstartingfromsomecellineitherthetopmostroworleftmostcolumnandgoinginthebottom-rightdirectionu......
  • 【Matlab学习2.1】特殊矩阵
    通用性的特殊矩阵zeros函数:产生全0矩阵,即零矩阵。ones函数:产生全1矩阵,即幺矩阵。eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。rand函数:产生(0,1)区间均匀......
  • leetcode简单(矩阵):[566, 766, 832, 867, 999, 1030, 1261, 1275, 1337, 1351]
    目录566.重塑矩阵766.托普利茨矩阵832.翻转图像867.转置矩阵999.可以被一步捕获的棋子数1030.距离顺序排列矩阵单元格1260.二维网格迁移1275.找出井字棋的获胜者13......
  • 【Matlab学习1.5】矩阵元素的引用
    矩阵元素的引用方式矩阵元素的引用下标必须为正数,且用圆括号括起来A(3,2)表示A矩阵第3行第2列的元素,如:>>A(3,2)=200例1.5.1:>>A=[1,2,3;4,5,6];>>A(4,5)=10......