Eigen3的库使用
文章目录
- eigen3lib的使用
- 向量
- 向量二元操作
- 共轭
- 矩阵
- 矩阵赋值
- 转置
- 矩阵块操作
- 取行
- 取列
- 取任意大小的块
- 矩阵分解
- Cholesky分解
- 坐标变换
- 坐标轴
- 旋转
- 旋转矩阵
- 旋转四元数
- 欧拉角
- 数据类型转化
- double数字转化为矩阵
eigen3lib的使用
向量
Eigen::Vector3f u;//3行*1列 列向量
向量二元操作
Eigen::Vector3f v;
u.dot(v);//向量内积 u·v
u.cross(v);//向量叉积 u×v
共轭
u.adjoint();//返回u的共轭向量,若u为实向量,则返回结果与u相同。
矩阵
Eigen::Matrix3d A;//3*3方阵
Eigen::Matrix<double, 3, 6> B;//3行*6列矩阵
矩阵赋值
A<<1,0,0,0,1,0,0,0,1;
A = Eigen::Matrix3d::Identity();//单位矩阵
转置
A.transpose();
矩阵块操作
取行
Eigen::Vector3d n0,n1,n2;
A12.row(0) = n0.transpose();//第0行
A12.row(1) = n1.transpose();//第1行
A12.row(2) = n2.transpose();//第2行
取列
Eigen::Vector3d n0,n1,n2;
A.col(0) = n0; //第0列
A.col(1) = n1; //第1列
A.col(2) = n2; //第2列
取任意大小的块
B.block<1, 3>(2, 0)=n1.transpose();//每块大小<1,3>1行*3列 位置(2,0)第2行,第0列的块
B.leftCols<3>() = Eigen::Matrix3d::Identity();//按照列从左边取<3>列
B.rightCols<3>() = Eigen::Matrix3d::Identity();//按照列右边取<3>列
矩阵分解
分解矩阵A
Cholesky分解
将A分解成 下三角矩阵L*L^T
Eigen::Matrix3d L,LT;
L = Eigen::LLT<Eigen::Matrix3d>(A).matrixL();
LT = Eigen::LLT<Eigen::Matrix3d>(A).matrixL().transpose();
原理介绍:https://blog.csdn.net/wfei101/article/details/81951888
坐标变换
坐标轴
Eigen::Vector3d::UnitX(); //x轴单位向量
Eigen::Vector3d::UnitY(); //x轴单位向量
Eigen::Vector3d::UnitZ(); //x轴单位向量
旋转
旋转矩阵
Eigen::Matrix3d R =Eigen::Matrix3d::Identity();
R = Q.toRotationMatrix()
旋转四元数
double x,y,z,w;
Eigen::Quaterniond Q(w,x,y,z);
Eigen::Quaterniond Q(R);
欧拉角
数据类型转化
double数字转化为矩阵
double nums[1][9];
Eigen::Map<Eigen::Matrix<double, 3, 6, Eigen::RowMajor>> A(nums[0]);
Eigen3的库使用相关推荐
- 资源 | 做一款炫酷的机器人需要哪些学习资源(机器人资源Awesome系列)
翻译 | AI科技大本营 参与 | 赵博 SuiSui 为什么要制作机器人呢?想参加各种机器人大赛?看起来很炫酷?不过从学习角度说,机器人综合了信息技术.电子工程.机械学.程序设计.控制系统以及认知等 ...
- UR驱动包安装过程及遇到问题的解决方案
1. 去以下两个地址项目1和项目2下载项目 2. 新建一个文件夹如ur_ws,并且创建一个src子目录存放上面两个项目的解压文件,如下图所示. 3. 编译文件,执行catkin_make后报错Pr ...
- g2o图优化简介与基本使用方法
一.g2o简介 g2o(General Graphic Optimization)是一个基于图优化的库,将非线性优化与图论结合起来的理论,我们可以利用g2o求解任何可以表示为图优化的最小二乘问题. 图 ...
- 【GNSS】PEA软件-GNSS 服务端整网数据处理的开源软件
PEA软件-GNSS 服务端整网数据处理的开源软件 下载地址 Welcome to the PEA for GNSS processing. Welcome to the Parameter Esti ...
- Windows API参考大全
第一章 Win32 API概论 1.1为什么使用 Wu32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API 函数.这些函数在程序员手中犹如" ...
- matlab分离实部虚部,c – 如何在Eigen3库中有效地提取复杂矩阵的实部/虚部?
我在Eigen3库中有一些复杂,密集的矢量/矩阵,我想将实部和虚部提取到单独的数组中.在Matlab中,我可以做类似的事情 cplxFoo = [1,1i; -1i -1] re = real(cpl ...
- Eigen:C++中Eigen库的安装与学习
1.下载地址: http://eigen.tuxfamily.org/index.php?title=Main_Page 进入上边官方网站进行下载如下所示: 找到自己需要的版本下载即可,我下载的是3. ...
- 基于C++模板的线性代数库---Eigen
Eigen 是一个基于C++模板的线性代数库,直接将库下载后放在项目目录下,然后包含头文件就能使用,非常方便.此外,Eigen的接口清晰,稳定高效. 在解决方案"属性"中的&quo ...
- 一个精简的开源点云库
Cilantro是一个精简高效的点云数据处理库,编程是C++,依赖项较少,但是相比较于PCL来说,代码更有可读性,PCL中大量的使用C++高级特性,阅读起来比较难并且不易重构拆解代码,而cilantr ...
最新文章
- linux 搜索so文件,Linux下查找和安装依赖的.so文件
- 机器学习中的线性回归,你理解多少?
- R语言完美重现STAMP结果图
- 在Windows2003下搭建FTP服务器
- 用webstorm做一个跑马灯_用Workman做一个聊天室
- Java技巧-解决JAVA_HOME变量无效问题
- 找到下一个“元素节点”通用函数
- 考研规划计算机科学与技术,2021考研:计算机科学与技术研究方向及冲刺复习规划...
- java中import机制(指定import和import *的区别)
- 网络编程 - socket接收大数据
- 文本前后空格去除工具
- TCP流模式与UDP数据报模式
- 提示Algorithm negotiation failed 错误该如何解决
- 维度诅咒_维度的诅咒减去行话的诅咒
- 301代码php代码在哪里加,301转向设置及代码及方法详解
- 卡片式设计流行的秘密 — 看完这15个案例你就懂了!
- 几款强大的PPT制作辅助软件
- 基于高德地图实现可编辑的电子围栏功能【多边形围栏】
- 2019年18种最有效推广的方式
- 【秋招】计算机视觉面试题
热门文章
- 满屋花网页代码_成为更好的程序猿!2020年给网页开发人员的32条建议
- glibc版本查看_[译] 写一个简单的内存分配器(替换glibc中的malloc函数)
- 计算机驱动伺服的程序,伺服调试软件V-ASSISTANT始终找不到驱动-工业支持中心-西门子中国...
- java 快速从树节点找到数据_14期每日分享Java程序员分享超全哈希相关的知识
- I - Arbitrage(判断是否有无正环 II)
- MATLAB中如何生成指定范围的随机整数向量
- 手把手教程 Sublime Text 删除重复行
- 理解metrics.classification_report
- 【编程珠玑】第八章 算法设计技术
- 一本通1623Sherlock and His Girlfriend