0%

Eigen的Reductions、visitor和broadcasting

约简(Reductions)

在 Eigen 中, Reductions 是使矩阵和数组返回一个标量的函数。最常见的 Reductions 是 .sum() ,它返回了矩阵和数组所有元素的和。下面是一些 Reductions 的使用例子:

阅读全文 »

逗号初始化

Eigen提供了逗号初始化的方式来使得矩阵、向量和数组的初始化简化。应用场景如下所示:

1
2
3
4
5
Matrix3f m;
m << 1, 2, 3,
4, 5, 6,
7, 8, 9;
std::cout << m;
阅读全文 »

递归状态估计的概率基础

引言

状态估计解决的是从不能直接观测但可以推断的传感器数据中估计数量的问题。在最优化估计得理论中,最优化分为参数估计和状态估计。《概率机器人》这本书中一开始就说明了状态估计问题。下面引用一段中文版的内容:

状态估计旨在从数据中找回状态变量。概率状态估计算法在可能的状态空间上计算置信度分布。

概率的基本概念

详细内容参考概率统计相关内容,下面只记录个人认为比较有用的信息。

阅读全文 »

Eigen学习笔记之分块操作

分块运算方法

在 Eigen 中的大部分分块操作使用 .block() 方法来实现。在 Eigen 中有2个版本的 block()方 法,它们分别如下表所示:

块操作

  • 动态矩阵版本的Block
  • 静态矩阵版本的Block
阅读全文 »

Eigen学习笔记之Array类和操作符

Array类与Matrix类的区别

Eigen中除了提供Matrix的矩阵类之外,还提供了另一类名为Array类的数组类型的类。Array类提供了一种更简单的方式来执行基于系数的操作。具体的区别可以在运算时看出来,在此只是进行简单的介绍,详细情况相关部分的内容。

Array类的输入类型

Array类模板的输入参数与Matrix类的参数类似。前三个参数和Matrix类的前三个参数一样:

1
Array<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
阅读全文 »

简介

Eigen提供的矩阵和向量的计算操作,主要是基于C++对运算符的重载和特殊的方法来完成的。主要支持的计算有 “ + “ 、” - “ 、” * “ 和方法 dot()、cross() 等等。下面针对各计算方法进行简要说明。

加法和减法

Eigen中支持的加法和减法操作主要分为以下几类操作符:

  • 二元操作符”+”;
  • 二元操作符”-“;
  • 一元操作符”-“;
  • 混合操作符”+=”;
  • 混合操作符”-=”;
阅读全文 »

简介

Eigen提供的矩阵和向量的计算操作,主要是基于C++对运算符的重载和特殊的方法来完成的。主要支持的计算有 “ + “ 、” - “ 、” * “ 和方法 dot()、cross() 等等。下面针对各计算方法进行简要说明。

加法和减法

Eigen中支持的加法和减法操作主要分为以下几类操作符:

  • 二元操作符”+”;
  • 二元操作符”-“;
  • 一元操作符”-“;
  • 混合操作符”+=”;
  • 混合操作符”-=”;
阅读全文 »

Matrix类的参数

Matrix类的前三个参数是必须的,后三个参数可以暂时不学习。参数的基本模型如下所示。

1
Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
  • Scalar 参数表示数量的存储类型。
  • RowsAtCompileTimeColsAtCompileTime 表示在编译时规定的矩阵行数和列数。
阅读全文 »