Eigen::Vector2d v(3.0, 4.0); Eigen::Vector2d sum = u + v; //两个向量的和 Eigen::Vector2d diff = u - v; //两个向量的差 double dot = u.dot(v); //两个向量的点积 double cross = u.cross(v); //两个向量的叉积 ``` 4.其他常用操作: ```cpp double norm = v.norm(); /...
各种诸如MatrixXd/Matrix2Xd/MatrixXi/Vector2d/Vector4f都是typedef所定义的别名。 Matrix/Vector/RowVector数据类型后面会有后缀。其中数字表示某个固定size,X表示Dynamic动态大小,d表示double,同理i表示int,在预编译时,宏会在typedef中替换掉定义。 比如Matrix2Xd等价于Matrix<double, 2, Dynamic>; Vector表示列向...
// 创建向量1*2的double型列向量,并初始化 Eigen::Vector2d u(1.0,2.9); // 行向量 Eigen::Vector2d v=u.transpose(); 点乘和叉乘等操作 .dot函数 .adjoint #include <iostream> #include <Eigen/Dense> using namespace Eigen; using namespace std; int main() {Vector3dv(1,2,3); Vector3d w(...
Reductions可以看做一个作用在matrix或者vector上的函数,返回结果是一个值,比如之前介绍的sum(), prod(), trace(), minCoeff()等,这里再介绍一类Reductions—Norm computations。Eigen提供了范数类函数,norm(),如l2l2范数,squaredNorm(),lplp范数,lpNnorm(),这里的p可以是1或者无穷。 Reductions还有一类波尔类型,...
Eigen::Vector2d v1(1.0, 2.0); Eigen::Vector2d v2 = v1.transpose(); ``` 上述代码表示将v1进行转置操作,结果存储在v2中。v2的结果应为(1.0, 2.0)。 2. 向量长度: ``` Eigen::Vector2d v1(3.0, 4.0); double length = v1.norm(); ``` 上述代码表示计算v1的长度,结果存储在length中。leng...
std::map<int, Eigen::Vector4d, std::less<int>, Eigen::aligned_allocator<std::pair<const int, Eigen::Vector4d> > > 1. 函数传递Eigen构数据结构,需要传引用,具体见 Eigen 官网 void my_function(Eigen::Vector2d v); 1. 改为: void my_function(const Eigen::Vector2d& v); 1. Eigen中的...
#include <iostream> #include <Eigen/Dense> using namespace Eigen; int main() { Matrix2d mat; mat << 1, 2, 3, 4; Vector2d u(-1,1), v(2,0); std::cout << "Here is mat*mat:\n" << mat*mat << std::endl; std::cout << "Here is mat*u:\n" << mat*u << std::endl...
1#include <cmath>2#include <iostream>3#include <Eigen/Eigen>45intmain(intargc,char*argv[]) {6//向量(列向量)7Eigen::Vector3d v1(0,0,0);//声明并定义8v1.y() =1;9v1[2] =2;10std::cout <<"v1:"<< v1.transpose() <<std::endl;1112Eigen::Vector3d v2;13v2 <<2,2,2;/...
说明:本教程主要是对eigen官网文档做了一个简要的翻译,参考了eigen官网以及一些博主的技术贴,在此表示感谢。 Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。Eigen是一个开源库,从3.1.1版本开始遵从MPL2许可。 1.Eigen安装及使用 ...
Eigen::Vector3d reference_point_position(0.0,0.0,0.0); Eigen::MatrixXd jacobian; kinematic_state->getJacobian(joint_model_group, kinematic_state->getLinkModel(joint_model_group->getLinkModelNames().back()), reference_point_position, jacobian); ROS_INFO_STREAM("Jacobian: " << jacobian); 完...