![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Eigen
一土山石
叫我嘚嘚大王
展开
-
Eigen官网教程(1) Matrix相关
1. Eigen库与头文件Eigen库被分为了一个Core模块和几个其他额外的模块,每个模块都有对应的头文件,使用时需要进行包含。其中通过Dense和Eigen头文件可以很方便的使用其他的模块,因此一般情况下使用这俩就够了。2.Matrix类2.1Matrix类共有6个模板参数,主要使用的是前三个参数,剩余的都有默认值,前三个参数分别是Matrix <typename...原创 2019-04-12 21:35:27 · 3440 阅读 · 0 评论 -
Eigen官网教程(2) Array类和元素级操作
0 引言Array类提供了和Matrix不同的操作,Matrix主要为了线性代数而设计,而Array类是通常用的数组。Array类提供了更方便的元素级的操作,但是没有线性代数方面的意义,比如给每个元素的值加上一个常数或按照元素相乘两个array对象。1 Array typesArray模板类的参数同Matrix类相同,前三个参数同样是Array<typename Scal...原创 2019-04-13 11:10:55 · 1088 阅读 · 0 评论 -
Eigen官网教程(3) 块操作
这节介绍块操作的必要性。块指的是矩阵或数组中的一个矩形区域,块表达式可以用于左值或者右值,同样不会耗费运行时间,由编译器优化。1. 使用块操作Eigen中最常用的块操作是block()方法,共有两个版本索引从0开始。两个版本都可用于固定尺寸或者动态尺寸的矩阵和数组。这两个表达式语义上相同,唯一的区别是如果块的尺寸比较小的话固定尺寸版本的块操作运行更快,但是需要在编译阶段知道大小。...原创 2019-04-13 11:12:23 · 1789 阅读 · 0 评论 -
Eigen官网教程 (4) 高级初始化
本页讨论了几种用于初始化矩阵的高级方法。它提供了之前介绍的逗号初始化器的更多细节。它还解释了如何获得特殊矩阵,例如单位矩阵和零矩阵。1 逗号初始化程序Eigen提供逗号初始化语法,允许用户轻松设置矩阵,向量或数组的所有系数。只需列出系数,从左上角开始,从左到右,从上到下移动。需要事先指定对象的大小。如果列出的系数太少或太多,Eigen会抱怨。而且,初始化列表的元素本身可以是向量或矩...原创 2019-04-13 11:18:03 · 2634 阅读 · 0 评论 -
Eigen官网教程(5) 规约、范数等
1 Reductions2 范数计算向量的平方范数由squaredNorm()获得,等价于向量对自身做点积,也等同于所有元素平方和。Eigen也提供了norm()范数,返回的是squaredNorm()的根。这些操作也适用于矩阵。如果想使用其他元素级的范数,使用lpNorm<p>()方法,当求无穷范数时,模板参数p可以取特殊值Infinity,得到的是所有元素的最大绝对值。...原创 2019-04-13 11:19:25 · 7353 阅读 · 1 评论 -
Eigen官网教程(6) Map类
0 介绍有时,您可能希望在Eigen中使用预定义的数字数组作为向量或矩阵。虽然一个选项是复制数据,但最常见的是您可能希望将此内存重新用作特征类型。幸运的是,使用Map类非常容易。1 映射类型并声明Map变量Map <Matrix <typename Scalar,int RowsAtCompileTime,int ColsAtCompileTime >>;M...原创 2019-04-13 11:20:28 · 1243 阅读 · 0 评论 -
Eigen官网教程(7)geometry几何模块的实践
Eigen的几何模块用来表达空间的旋转、平移等变换。3维空间中刚体的运动有六个自由度,分别是绕3个轴的旋转运动和沿着3个轴的平移运动。对于旋转可以用3x3的旋转矩阵R表示,旋转矩阵描述了刚体经过矩阵作用后的姿态信息,旋转矩阵是一个正交矩阵;然而旋转矩阵有9个参数,9个参数描述6自由度的旋转,有点冗余了。因此旋转还可以用旋转向量来表示,空间中物体的旋转可以看作是绕这某个轴转过一定的角度完成,因此旋转...原创 2019-04-13 11:23:41 · 1086 阅读 · 0 评论