![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Eigen
文章平均质量分 65
AI Chen
悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。
展开
-
Eigen库学习笔记
Eigen矩阵运算库的学习笔记原创 2022-09-13 15:37:31 · 193 阅读 · 0 评论 -
Eigen 将矩阵保存为txt文件
其中,第一个参数表示精度,这里使用Eigen::StreamPrecision表示按照默认精度输出;后面几个参数表示不需要特别指定。在上面的代码中,我们首先创建了一个大小为5行,3列的double型矩阵mat,并使用setRandom()函数将其随机初始化。然后使用std::ofstream类创建一个输出文件流,将矩阵以txt格式写入文件,并使用outfile.close()函数关闭文件流。要将Eigen中的矩阵保存为txt文件,可以使用Eigen::IOFormat类和std::ofstream类。原创 2023-05-04 15:39:18 · 722 阅读 · 0 评论 -
Eigen 对矩阵的每个元素取绝对值
使用Eigen库对矩阵的每一个元素进行取绝对值操作非常简单。可以使用array()函数将矩阵转换为数组,然后使用abs()函数对数组中的每个元素取绝对值,最后使用matrix()函数将数组转换回矩阵。原创 2023-05-04 15:07:05 · 1414 阅读 · 0 评论 -
Eigen 按行和按列计算矩阵的均值和标准差
要求标准差的话,把mean改成std即可。原创 2023-05-04 15:00:24 · 1715 阅读 · 2 评论 -
Eigen 矩阵按行求解平均值和按列求解平均值
做点云相关的算法的时候,pcl中点云已经转成了Eigen了,直接调用.mean()来求解点云的质心。原创 2023-02-28 21:09:11 · 790 阅读 · 0 评论 -
Eigen 求解两个向量的夹角
Eigen实现求解两个向量的夹角原创 2022-09-20 16:25:24 · 1129 阅读 · 0 评论 -
Eigen 求点到平面的距离
Eigen实现计算点到平面的距离原创 2022-09-14 15:49:45 · 634 阅读 · 0 评论 -
Eigen 由三点求平面方程及平面法向量
用Eigen实现已知三点求法向量和平面方程原创 2022-09-13 16:20:37 · 1926 阅读 · 0 评论 -
Eigen 计算均值和标准差
【代码】Eigen计算均值和方差。原创 2022-09-07 17:51:45 · 2001 阅读 · 0 评论 -
Eigen 矩阵的SVD分解
矩阵的SVD分解一、SVD分解原理二、SVD分解举例三、用Eigen库实现SVD分解1.C++代码2.输出结果一、SVD分解原理 奇异值分解是将一个非零的实数矩阵Am×nA_{m \times n}Am×n分解成由三个是矩阵乘积形式的运算,即进行矩阵的因子分解:A=UΣVTA=U\Sigma V^TA=UΣVT其中,UUU为m×mm\times mm×m的单位正交阵,VVV为n×nn\times nn×n的单位正交阵,即有UUT=I,VVT=IUU^T=I,VV^T=IUUT=I,VVT=I。Σ原创 2022-03-19 22:39:43 · 8756 阅读 · 0 评论 -
Eigen 矩阵的特征值特征向量求解(EVD分解)
用Eigen库求解矩阵的特征值和特征向量。矩阵的特征值特征向量求解(EVD分解)一、EVD分解原理1.特征值2.特征值分解过程二、EVD分解举例三、Eigen库实求解特征值与特征向量1.C++代码2.输出结果一、EVD分解原理1.特征值 如果说一个向量vvv是方阵An×nA_{n \times n}An×n的特征向量,将一定可以表示成下面的形式:Av=λvAv=\lambda vAv=λv写成矩阵的形式为:AP=P[λ1λ2⋱λn]AP=P\begin{bmatrix} \lam原创 2022-03-19 21:48:32 · 2631 阅读 · 0 评论 -
Eigen 矩阵的LDLT分解求解线性方程组
矩阵的LDLT分解求解线性方程组1.LDLT分解原理2.Eigen库实现2.1问题定义2.2代码实现2.3输出结果1.LDLT分解原理 利用矩阵AAA的LDLTLDL^TLDLT分解来求解方程组Ax=bAx=bAx=b的方法称为LDLTLDL^TLDLT分解法。若对称矩阵AAA的各阶顺序主子式不为零,则AAA可以唯一分解为A=LDLTA=LDL^TA=LDLT。其中,LLL和DDD的形式如下:L=∣1l211l31l321⋯⋯⋯⋱ln1ln2⋯lnn−11∣L=\begin{vmatrix}原创 2022-03-13 12:47:32 · 5802 阅读 · 0 评论 -
Eigen库学习 ---- 6.约化、访问和广播操作
Eigen库学习 ---- 6.约化、访问和广播操作上篇为:Eigen库学习 ---- 5.高级初始化操作本篇为这个链接的学习笔记。一、约化操作 在Eigen中,约化是一个函数,它取一个矩阵或者数组,返回一个标量值。最常用的约化方法是.sum(),返回这个数组或者矩阵中的所有系数之和。例如如下操作:Matrix2d mat;mat << 1,2,3,4;cout << "Here is mat.sum() " << mat.sum()原创 2021-04-27 11:27:09 · 745 阅读 · 0 评论 -
Eigen库学习 ---- 5.高级初始化操作
Eigen库学习 ---- 5.高级初始化操作上篇为:Eigen库学习 ---- 4.块操作本篇为这个链接的学习笔记。 介绍初始化矩阵的几种高级方法,介绍如何得到单位矩阵和零矩阵等特殊矩阵。一、逗号初始化 Eigen提供了逗号初始化的方法,可以很容易的设置矩阵、向量或者数组的元素值。按照从左到右从上到下的顺序列出所有的元素。对象的大小需要事先指定,如果列出的元素个数太多或者太少,Eigen会报错。例如: Matrix3f m; m << 1, 2, 3, 4, 5, 6,原创 2021-04-25 10:26:02 · 3202 阅读 · 0 评论 -
Eigen库学习 ---- 4.块操作
Eigen库学习 ---- 4.块操作上篇为:Eigen库学习 ---- 3.数组类和系数运算本篇为这个链接的学习笔记。 块操作可以提取出矩阵的当中的一小块进行运算,可以作为左值,也可以作为右值。一、使用块操作 块操作有两种表达方式:从(i,j)处提取pxq大小的矩阵块。matrix.block(i,j,p,q);(称为动态大小的块)matrix.block<p,q>(i,j); (称为固定大小的块) 固定大小的矩阵块执行的更快,但是需要编译器提前知道这个矩阵的大小。例原创 2021-04-23 23:56:50 · 1395 阅读 · 0 评论 -
Eigen库学习 ---- 3.数组类和系数运算
Eigen库学习 ---- 3.数组类和系数运算上篇:Eigen库学习 ---- 2.矩阵\向量的算数运算本篇为这个链接的学习总结。 Array类提供通用数组,而Matrix类则用于线性代数。此外,Array类提供了一种执行按系数运算的简单方法,这种方法可能没有线性代数意义,例如向数组中每个系数添加一个常量或者按系数将两个数组相乘。一、数组类 数组是采用与矩阵相同的类模板,与矩阵一样,前三个模板参数是必须的。 Array<typename Scalar, int Rows, in原创 2021-04-21 23:58:42 · 1272 阅读 · 0 评论 -
Eigen库学习 ---- 2.矩阵\向量的算数运算
Eigen库学习 ---- 2.矩阵\向量的算数运算上篇:Eigen库学习 ---- 1.矩阵类 Eigen库提供了矩阵\向量的算数运算,如‘+ - * /’,或者特殊运算,如’dot(),cross()’。一、加法和减法运算 加减运算必须保证两边的矩阵\向量的维度相同,即有相同的rows和cols,元素的类型也必须相同,因为Eigen不会自动提升数据类型。加减运算有如下:√ binary operator + as in a+b ( 二元运算符)√ binary ope原创 2021-04-21 00:10:31 · 4740 阅读 · 2 评论 -
Eigen库学习 ---- 1.矩阵类
Eigen库学习 ---- 1.矩阵类 The Matrix class矩阵类:在Eigen库中,所有的矩阵和向量都是Matrix类,向量是一个只有1行或者1列的特殊矩阵。一、矩阵的定义 Matrix类接收六个参数,但是前三个参数足够了。剩下的三个参数都有默认值,现在我们保持后面三个参数不变,只讨论前三个参数。 Matrix<元素类型 Scalar, int Rows, int Cols>即: Matrix<元素类型 例如float型, int 行, int 列原创 2021-04-11 15:15:47 · 4304 阅读 · 0 评论