eigen一维向量_1.2 eigen中矩阵和向量的运算

本文详细介绍了Eigen库中矩阵和向量的运算,包括加减法、标量乘除法、转置与共轭、矩阵乘法和点叉乘,以及一些基本的算术化简计算。强调了运算的有效性和潜在的混叠问题,并给出了实例代码展示。
摘要由CSDN通过智能技术生成

1.2矩阵和向量的运算

1.介绍

eigen给矩阵和向量的算术运算提供重载的c++算术运算符例如+,-,*或这一些点乘dot(),叉乘cross()等等。对于矩阵类(矩阵和向量,之后统称为矩阵

类),算术运算只重载线性代数的运算。例如matrix1*matrix2表示矩阵的乘法,同时向量+标量是不允许的!如果你想进行所有的数组算术运算,请看下

一节!

2.加减法

因为eigen库无法自动进行类型转换,因此矩阵类的加减法必须是两个同类型同维度的矩阵类相加减。

这些运算有:

双目运算符:+,a+b

双目运算符:-,a-b

单目运算符:-,-a

复合运算符:+=,a+=b

复合运算符:-=,a-=b

例子:

#include #include

using namespaceEigen;intmain()

{

Matrix2d a;

a<< 1, 2,3, 4;

MatrixXd b(2,2);

b<< 2, 3,1, 4;

std::cout<< "a + b =\n" << a + b <<:endl>

std::cout<< "a - b =\n" << a - b <<:endl>

std::cout<< "Doing a += b;" <<:endl>

a+=b;

std::cout<< "Now a =\n" << a <<:endl>

Vector3d v(1,2,3);

Vector3d w(1,0,0);

std::cout<< "-v + w - v =\n" << -v + w - v <<:endl>

}

3.标量乘法和除法

标量的乘除法非常简单:

双目运算符:*,matrix*scalar

双目运算符:*,scalar*matrix

即乘法满足交换律

双目运算符:/,matrix/scalar

矩阵中的每一个元素除以标量

复合运算符:*=,matrix*=scalar

复合运算符:/=,matrix/=scalar

#include #include

using namespaceEigen;intmain()

{

Matrix2d a;

a<< 1, 2,3, 4;

Vector3d v(1,2,3);

std::cout<< "a * 2.5 =\n" << a * 2.5 <<:endl>

std::cout<< "0.1 * v =\n"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值