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

这篇具有很好参考价值的文章主要介绍了Eigen笔记1:矩阵和向量的定义和赋值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 头文件声明

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

using Eigen::MatrxXd;
using Eigen::VectorXd;

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

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

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

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

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

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

2.3 向量赋值方法

2.3.1 列向量赋值方法

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

2.3.2 行向量举例

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

2.3.3 其他赋值方法

  • 逐个元素赋值

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

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

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

3.2 矩阵赋值方法

3.2.1 每个矩阵元素单独赋值

注意索引是从0开始,和数组是一样的!文章来源地址https://www.toymoban.com/news/detail-522492.html

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);

3.2.3 逗号赋值

Eigen::Matrix3f m;
m << 1, 2, 3,
     4, 5, 6,
     7, 8, 9;

到了这里,关于Eigen笔记1:矩阵和向量的定义和赋值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 旋转矩阵R、平移向量t以及变换矩阵T的定义及其下标的含义

    首先,只考虑旋转。 假设坐标系1: { X 1 , Y 1 , Z 1 } {X_1, Y_1, Z_1} { X 1 ​ , Y 1 ​ , Z 1 ​ } 经过 纯旋转 之后得到坐标系2: { X 2 , Y 2 , Z 2 } {X_2, Y_2, Z_2} { X 2 ​ , Y 2 ​ , Z 2 ​ } (如上图),其中坐标系1对应的单位正交基为 ( e 1 , e 2 , e 3 ) left(e_{1}, e_{2}, e_{3}right) ( e 1 ​ , e

    2023年04月23日
    浏览(39)
  • 简述矩阵的秩和向量组的秩的定义 从定义出发分析两者之间的相互关系

    (1)简述矩阵的秩和向量组的秩的定义;(2)从定义出发分析两者之间的相互关系。 (1)简述矩阵的秩和向量组的秩的定义: 矩阵的秩的定义:设在矩阵A中有一个不为0的r阶子式D,且所有的r+1阶子式(若存在)全为0,则D称为矩阵A的最高阶非零子式,它的阶数r称为矩阵

    2024年02月16日
    浏览(38)
  • python学习笔记——矩阵跟向量间的转换

    2、向量转矩阵:reshape() 可以将一维数据转为多维数据

    2024年02月16日
    浏览(29)
  • R语言自学笔记:向量、矩阵及dataframe基础

    记录一下在学习和练习过程中所遇到的一些细节问题 (1)R语言中,向量元素从一开始标号,vector[0] 用于储存向量的类型 (2)向量的嵌套,在R语言中向量之间是可以以嵌套的形式来指定对应元素,例如:  结果为: (3)选取向量的部分。除了基本的可以使用数字坐标来选

    2023年04月09日
    浏览(27)
  • 矩阵分解及其Eigen实现

    主要是用来记录自己的学习过程,内容也主要来自于网上的各种资料,然后自己总结而来,参考的资料都以注明,感谢这些作者的分享。如果内容有误,请大家指点。 定义        将矩阵等价为两个矩阵 L L L 和 U U U 的乘积 ,其中 L L L 和 U U U 分别是单位下三角矩阵和上三角

    2024年02月03日
    浏览(33)
  • Eigen-高级矩阵初始化

    Eigen提供了一个逗号初始化语法,允许用户轻松设置矩阵、向量或数组的所有系数。简单地列出系数,从左上角开始,从左到右,从上到下。对象的大小需要事先指定。如果你列出的系数太少或太多,Eigen就会报错。 此外,初始化列表的元素本身可以是向量或矩阵。 一个常见

    2024年04月27日
    浏览(29)
  • Eigen-Matrix矩阵

    在Eigen中,所有矩阵和向量都是矩阵模板类的对象。向量只是矩阵的一种特殊情况,要么有一行,要么有一列。矩阵就是一个二维数表,可以有多行多列。 Matrix类有六个模板参数,但现在只需要了解前三个参数就足够了。剩下的三个参数都有默认值,我们暂时不碰它们,我们

    2024年03月09日
    浏览(55)
  • [Eigen中文文档] 稀疏矩阵操作

    文档总目录 英文原文(Sparse matrix manipulations) 处理和解决稀疏问题涉及各种模块,总结如下: 模块 头文件 内容 SparseCore #includeEigen/SparseCore SparseMatrix和SparseVector类、矩阵集合、基本稀疏线性代数(包括稀疏三角求解器) SparseCholesky #includeEigen/SparseCholesky 直接稀疏LLT和LDLT Chole

    2024年02月10日
    浏览(45)
  • Eigen 矩阵Matrix及其简单操作

    在Eigen,所有的矩阵和向量都是Matrix模板类的对象,Vector只是一种特殊的矩阵(一行或者一列)。 Matrix有6个模板参数,主要使用前三个参数,剩下的有默认值。 Scalar是表示元素的类型,RowsAtCompileTime为矩阵的行,ColsAtCompileTime为矩阵的列。 库中提供了一些类型便于使用,比如

    2024年02月12日
    浏览(25)
  • eigen旋转矩阵与欧拉角的转换

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包