Eigen学习笔记(1)-入门-卡核

Eigen学习笔记(1)-入门

原文:Eigen官网-Getting started Eigen 是一个基于C++的线性代数库,其中实现大量常用的线性代数算法,包括常规矩阵计算,矩阵变换,矩阵分解,...
Eigen学习笔记(8)-原生缓存的接口:Map类-卡核

Eigen学习笔记(8)-原生缓存的接口:Map类

原文:Eigen官网-Interfacing with raw buffers: the Map class 1. 引言 本篇文章将介绍Eigen如何与原生raw C/C++ 数组混合编程。当你从其他库中导入vectors或matrices时࿰...
Eigen学习笔记(11)-存储顺序-卡核

Eigen学习笔记(11)-存储顺序

原文:Eigen官网-Storage orders 对于矩阵和二维数组,有两种存储顺序:列优先和行优先。 1. 行优先和列优先的存储 矩阵的项构成一个二维网格。然而,当矩阵存储在内存...
Eigen学习笔记(10)-混淆-卡核

Eigen学习笔记(10)-混淆

原文:Eigen官网-Aliasing 在Eigen中,当变量同时出现在左值和右值,赋值操作可能会带来混淆问题。比如:mat = 2 * mat,mat = mat.transpose() ÿ...
Eigen学习笔记(16)-空间变换-卡核

Eigen学习笔记(16)-空间变换

原文:Eigen官网-Space transformations 本篇将介绍基于geometry module的2D 、3D旋转和投影或仿射变换。 Eigen中的Geometry module提供了两种不同的几何变换: 抽象变换,如...
Eigen学习笔记(7)-归约、迭代器和广播-卡核

Eigen学习笔记(7)-归约、迭代器和广播

原文:Eigen官网-Reductions, visitors and broadcasting 1. Reductions 在Eigen中,Reduction是用来处理matrix或者array的某类特征,然后返回一个标量。 1.1 求和 sum()返回...
Eigen学习笔记(9)-整形和切片-卡核

Eigen学习笔记(9)-整形和切片

原文:Eigen官网-Reshape and Slicing Eigen并没有为matrix提供直接的Reshape和Slicing的API,但是这些特性可以通过Map类来实现。 1. Reshape Reshape操作在保持元素不变的情况下修...
Eigen库中进行矩阵间的变换-卡核

Eigen库中进行矩阵间的变换

一、刚体旋转的表示方法有如下四种: 旋转矩阵(R3x3) ------旋转矩阵R为正交阵(行或列向量都是两两正交的单位向量)。四元数(Quaternion)-----...
Eigen学习笔记(13)-解决最小二乘系统的问题-卡核

Eigen学习笔记(13)-解决最小二乘系统的问题

原文:Eigen官网–Solving linear least squares systems 对于超定线性方程系统(An overdetermined system of equations):Ax = b,其是没有解的。在这种...
Eigen学习笔记(14)-原位矩阵分解-卡核

Eigen学习笔记(14)-原位矩阵分解

原文:Eigen官网-Inplace matrix decompositions 从Eigen3.3开始,LU、Cholesky和QR分解可以就地操作,即直接在给定的输入矩阵内操作。当处理大型矩阵或可用内存非常有限...
旋转矩阵之到底顺时针还是逆时针-卡核

旋转矩阵之到底顺时针还是逆时针

最近发现的,逻辑上比较搞人的一点...明明是很简单的东西。 到底表示顺时针旋转还是逆时针旋转? 1.单坐标系:逆时针 比如当,表示在单坐标系下将点绕原点逆时针旋转30...
Eigen 中四元数、欧拉角、旋转矩阵、旋转向量-卡核

Eigen 中四元数、欧拉角、旋转矩阵、旋转向量

一、旋转向量 1.0 初始化旋转向量:旋转角为alpha,旋转轴为(x,y,z) Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z)) 1.1 旋转向量转旋转矩阵 Eigen::Matrix3d rotation...