当前位置:   article > 正文

Eigen笔记1:矩阵和向量的定义和赋值_eigen设置向量值

eigen设置向量值

1. 头文件声明

#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>

using Eigen::MatrxXd;
using Eigen::VectorXd;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2. 向量

2.1 列向量定义

Eigen::Vector2d c1;//2*1列向量, 数据类型d是double
Eigen::Vector3d c2;//3*1列向量, 数据类型d是double
Eigen::Vector4d c3;//4*1列向量, 数据类型d是double
Eigen::VectorXd c4(30);//X*1动态列向量, 括号内数值可以自己定义,这里是30,表示30*1列向量,  数据类型d是double

Eigen::Vector2f c5;//2*1列向量, 数据类型f是float
Eigen::Vector3f c6;//3*1列向量, 数据类型f是float
Eigen::Vector4f c7;//4*1列向量, 数据类型f是float
Eigen::VectorXf c8(20);//X*1动态列向量, 括号内数值可以自己定义,这里是20,表示20*1列向量,  数据类型f是float

Eigen::Vector2i c9;//2*1列向量, 数据类型i是int
Eigen::Vector3i c10;//3*1列向量, 数据类型i是int
Eigen::Vector4i c11;//4*1列向量, 数据类型i是int
Eigen::VectorXi c12(20);//X*1动态列向量, 括号内数值可以自己定义,这里是20,表示20*1列向量, 数据类型i是int
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

列向量也可以用矩阵来表示

Eigen::Matrix<int,5,1> c13;//5*1列向量,第一个参数是数据类型int,第二个参数是行数,第三个参数是列数
  • 1

2.2 行向量定义

Eigen::RowVector2d r1;//1*2行向量, 数据类型d是double
Eigen::RowVector3d r2;//1*3行向量, 数据类型d是double
Eigen::RowVector4d r3;//1*4行向量, 数据类型d是double
Eigen::RowVectorXd r4(30);//1*X动态行向量, 括号内数值可以自己定义,这里是30,表示30*1行向量,  数据类型d是double

Eigen::RowVector2f r5;//1*2行向量, 数据类型f是float
Eigen::RowVector3f r6;//1*3行向量, 数据类型f是float
Eigen::RowVector4f r7;//1*4行向量, 数据类型f是float
Eigen::RowVectorXf r8(20);//1*X动态行向量, 括号内数值可以自己定义,这里是20,表示20*1行向量,  数据类型f是float

Eigen::RowVector2i r9;//1*2行向量, 数据类型i是int
Eigen::RowVector3i r10;//1*3行向量, 数据类型i是int
Eigen::RowVector4i r11;//1*4行向量, 数据类型i是int
Eigen::RowVectorXi r12(20);//1*X动态行向量, 括号内数值可以自己定义,这里是20,表示20*1行向量, 数据类型i是int
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

行向量也可以用矩阵来表示

Eigen::Matrix<int,1,5> r13;//1*5行向量,第一个参数是数据类型int,第二个参数是行数,第三个参数是列数
  • 1

2.3 向量赋值方法

2.3.1 列向量赋值方法

Eigen::Vector2f c14(5.0,2.0);//2*1列向量
  • 1

2.3.2 行向量举例

Eigen::RowVector2f r14(5.0,2.0);//1*2行向量
  • 1

2.3.3 其他赋值方法

  • 逐个元素赋值

注意索引是从0开始,和数组是一样的!

 Eigen::VectorXd c(2);
  c(0) = 4;
  c(1) = c(0) - 1;
  • 1
  • 2
  • 3
  • 用矩阵赋值
Eigen::Matrix<int,1,5> r15;
v13 << 1, 2, 3, 4, 5;
  • 1
  • 2

3. 矩阵

3.1 矩阵定义

Eigen::Matrix2d m1;//2*2矩阵, 数据类型d是double
Eigen::Matrix3d m2;//3*3矩阵, 数据类型d是double
Eigen::Matrix4d m3;//4*4矩阵, 数据类型d是double
Eigen::MatrixXd m4(15,10);//动态矩阵, 括号内第一个参数是行,第二个参数是列,这里是15和10,表示15*10矩阵, 数据类型d是double

Eigen::Matrix2f m5;//2*2列向量, 数据类型f是float
Eigen::Matrix3f m6;//3*3列向量, 数据类型f是float
Eigen::Matrix4f m7;//4*4列向量, 数据类型f是float
Eigen::MatrixXf m8(10,15);//动态矩阵, 括号内第一个参数是行,第二个参数是列,这里是10和15,表示10*15矩阵, 数据类型f是float

Eigen::Matrix2i m9;//2*2列向量, 数据类型i是int
Eigen::Matrix3i m10;//3*3列向量, 数据类型i是int
Eigen::Matrix4i m11;//4*4列向量, 数据类型i是int
Eigen::MatrixXi m12(10,15);//动态矩阵, 括号内第一个参数是行,第二个参数是列,这里是10和15,表示10*15矩阵, 数据类型i是int
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3.2 矩阵赋值方法

3.2.1 每个矩阵元素单独赋值

注意索引是从0开始,和数组是一样的!

Eigen::MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
  • 1
  • 2
  • 3
  • 4
  • 5

3.2.3 逗号赋值

Eigen::Matrix3f m;
m << 1, 2, 3,
     4, 5, 6,
     7, 8, 9;
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/980305
推荐阅读
相关标签
  

闽ICP备14008679号