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

news/2024/12/22 13:08:56/

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是doubleEigen::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是floatEigen::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是doubleEigen::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是floatEigen::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是doubleEigen::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是floatEigen::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开始,和数组是一样的!

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;

http://www.ppmy.cn/news/686515.html

相关文章

电脑怎么设置固定静态ip地址

电脑如何设置固定ip地址&#xff0c;因为很多业务都需要固定的静态IP访问网络&#xff0c;而本身宽带拨号是动态形式的&#xff0c;所以每次上网的IP地址都不一样&#xff0c;那么怎么样才能设置固定的IP地址。 下面就给大家分享一个最新的方法&#xff0c;不但可以设置固定IP…

为服务器设置固定IP地址

1、获取超级管理员权限 命令&#xff1a;$ su - 输入root密码 2、判断哪个网卡有流量&#xff0c;或者确定需要设置哪个网卡的固定ip 命令&#xff1a;# ifconfig PS&#xff1a;可以查询哪些网卡有流量 3、进入目录/etc/sysconfig/network-scripts/ 命令&#xff1a;# cd…

设置固定IP地址

如何在Windows上设置固定IP地址 第一步&#xff1a;Win键E&#xff0c;然后右键网络点击属性! 第二步&#xff1a;点击查看活动网络里的连接 第三步&#xff1a;接下来会显示WLAN状态&#xff0c;点击详细信息记下来&#xff0c;返回点击属性&#xff0c;在&#xff08;此连…

Windows设置固定IP

Windows 方法 1.打开控制面板&#xff0c;选择网络 2.打开网络和共享中心&#xff0c;再打开更多设备 3.选择我们需要设置的网络&#xff0c;这里我没插网线&#xff0c;鼠标右键选择属性 4.这里我们选择IPV4 5.设置ip&#xff0c;下面的子网掩码会自己填写&#xff0c;…

Win10(Win7)设置固定IP地址

局域网中的电脑IP是由路由器分时段自动分配的&#xff0c;IP地址随时间会自动改变。 这是由于路由器默认开启了DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机设置协议&#xff09;&#xff0c;它是一个局域网的网络协议。 主要有两个用途&#x…

配置固定IP地址

1)为本机配置固定的网络地址 2)IP地址&#xff1a;192.168.8.128 3)子网掩码&#xff1a;255.255.255.0 4)关闭NetworkManager服务&#xff0c;禁止开机自启 5)重启network服务&#xff0c;查看配置 默认的网卡配置文件路径&#xff1a;/etc/sysconfig/network-scripts/ 。 网卡…

PC设置固定IP

PC的IP会变化&#xff0c;如何设置成固定IP呢&#xff1f; 准备工作&#xff1a; 按winR——输入cmd——命令行输入ifconfig/all&#xff0c;可以查看到当前使用的IP和DNS服务器 假设查看到的IP是&#xff1a;192.168.0.100 &#xff08;你自己的IP可能是其它数值&#xf…

虚拟机设置固定ip地址

1.将虚拟机的网络适配器的网络连接模式设置为NAT模式。 2.编辑虚拟机网络 3.用root账号登录&#xff08;否则权限不够&#xff09;&#xff0c;修改linux系统网络配置信息 在终端输入命令&#xff1a;vim /etc/sysconfig/network-scripts/ifcfg-eth0 编辑配置文件后保存退出…