
Eigen
Rap_God
渣渣一个
展开
-
Eigen学习(七)规约、迭代和广播
规约Eigen中规约是指对一个矩阵或数组操作并返回一个标量的函数,常用的是sum()方法,返回矩阵或数组的所有元素的和。#include <iostream>#include <Eigen/Dense>using namespace std;int main(){ Eigen::Matrix2d mat; mat << 1, 2, ...原创 2018-04-07 17:05:46 · 8907 阅读 · 0 评论 -
Eigen学习(八)几何模块的实践
Eigen的几何模块用来表达空间的旋转、平移等变换。3维空间中刚体的运动有六个自由度,分别是绕3个轴的旋转运动和沿着3个轴的平移运动。对于旋转可以用3x3的旋转矩阵R表示,旋转矩阵描述了刚体经过矩阵作用后的姿态信息,旋转矩阵是一个正交矩阵;然而旋转矩阵有9个参数,9个参数描述6自由度的旋转,有点冗余了。因此旋转还可以用旋转向量来表示,空间中物体的旋转可以看作是绕这某个轴转过一定的角度完成,...原创 2018-04-08 19:59:48 · 2464 阅读 · 0 评论 -
Eigen学习(九)稠密问题之线性代数和分解
本节介绍如何求解线性系统,计算几种分解,比如LU,QR,SVD等。基本的线性求解问题:假设有一个系统方程写成如下矩阵的形式其中A,b是矩阵,b也可以是向量,当想要求解x时,可以选择多种分解方式,取决于矩阵A的形式以及考虑的速度和精度,下面是一个简单的例子#include <iostream>#include <Eigen/Dense>using namespace st...原创 2018-04-09 20:46:11 · 12769 阅读 · 1 评论 -
Eigen学习(四)Array类和元素级操作
Array类提供了和Matrix不同的操作,Matrix主要为了线性代数而设计,而Array类是通常用的数组。Array类提供了更方便的元素级的操作,但是没有线性代数方面的意义,比如给每个元素的值加上一个常数或按照元素相乘两个array对象。ArrayArray模板类的参数同Matrix类相同,前三个参数同样是Array<typename Scalar, int RowsAtCompileT...原创 2018-04-02 23:24:02 · 10951 阅读 · 2 评论 -
Eigen学习(三) 矩阵和向量的运算
继续翻译,原文链接:http://eigen.tuxfamily.org/dox/group__TutorialArrayClass.html这一节主要介绍如何在Eigen中实现矩阵、向量及标量之间的运算。Eigen提供了一些矩阵和向量的数值运算,其中一些是通过通用的C++运算符重载实现,如+,-,*等,另一些通过特殊的方法实现,如dot(),cross()等方法。对于Matrix类,这些操作只支...原创 2018-04-01 22:27:19 · 24823 阅读 · 0 评论 -
Eigen学习(二)
本文算是对官网手册的翻译吧,参考:http://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.htmlMatrix类在Eigen中,所有的矩阵和向量都是Matrix模板类的对象,向量只是特殊的矩阵而已,无论是行向量还是列向量。Matrix类共有6个模板参数,主要使用的是前三个参数,剩余的都有默认值,前三个参数分别是Matrix<type...原创 2018-03-27 00:33:12 · 2408 阅读 · 1 评论 -
Eigen学习(一)
参考:http://eigen.tuxfamily.org/dox/group__QuickRefPage.htmlhttp://eigen.tuxfamily.org/dox/GettingStarted.html1.简介Eigen是有关线性代数计算的C++模板库,里面还包含了基本的矩阵、数组的定义和使用,以及矩阵的各种分解、特征值、特征向量、行列式的计算。基本涵盖了各种需要对矩阵的操作,可以说...原创 2018-03-25 23:20:20 · 1977 阅读 · 0 评论 -
Eigen学习(五)块操作
这节介绍块操作的必要性。块指的是矩阵或数组中的一个矩形区域,块表达式可以用于左值或者右值,同样不会耗费运行时间,由编译器优化。使用块操作Eigen中最常用的块操作是block()方法,共有两个版本Block operationVersion constructing a dynamic-size block expressionVersion constructing a fixed-size b...原创 2018-04-04 00:05:23 · 19622 阅读 · 0 评论 -
Eigen学习(六)高级初始化
本节介绍几个初始化矩阵的高级方法,会更具体的介绍逗号初始化的方法。同样会介绍如何得到特殊矩阵比如单位矩阵和零矩阵等。逗号初始化Eigen提供了一个逗号初始化方法可以让使用者方便的设置矩阵、向量及数组的所有元素。简单的列出所有的元素,从左上角开始,从左至右,从上到下即可,当然前提是指定对象的尺寸,如果输入的数据少了或者多了,Eigen会报错的。Matrix3f m;m << 1, 2,...原创 2018-04-05 23:47:16 · 45248 阅读 · 2 评论