C++中 eigen(一)建造向量

快速上手:
https://eigen.tuxfamily.org/dox/group__QuickRefPage.html

文档:
https://eigen.tuxfamily.org/dox/index.html

在这里插入图片描述
Constructors 建造 向量

Vectors 向量

例如,方便的 typedef Vector3f 是一个包含 3 个浮点数的(列)向量。 Eigen 定义如下:

typedef Matrix<float, 3, 1> Vector3f;

We also offer convenience typedefs for row-vectors, for example:
我们还为行向量提供方便的 typedef,int 整数 例如:

typedef Matrix<int, 1, 2> RowVector2i;

Of course, Eigen is not limited to matrices whose dimensions are known at compile time. The RowsAtCompileTime and ColsAtCompileTime template parameters can take the special value Dynamic which indicates that the size is unknown at compile time, so must be handled as a run-time variable. In Eigen terminology, such a size is referred to as a dynamic size; while a size that is known at compile time is called a fixed size. For example, the convenience typedef MatrixXd, meaning a matrix of doubles with dynamic size, is defined as follows:
当然,Eigen 不限于在编译时维度已知的矩阵。 RowsAtCompileTime 和 ColsAtCompileTime 模板参数可以采用特殊值 Dynamic ,该值表示编译时大小未知,因此必须作为运行时处理多变的。在 Eigen 术语中,这样的尺寸被称为动态尺寸;而在编译时已知的大小称为固定大小。例如,方便的 typedef MatrixXd ,表示具有动态大小的双精度矩阵,定义如下:

typedef Matrix<double, Dynamic, Dynamic> MatrixXd;
// typedef Matrix<双精度、动态、动态> MatrixXd;

And similarly, we define a self-explanatory typedef VectorXi as follows:
同样,我们定义一个不言自明的 typedef VectorXi 如下:

typedef Matrix<int, Dynamic, 1> VectorXi;

You can perfectly have e.g. a fixed number of rows with a dynamic number of columns, as in:
你可以完美地拥有例如固定数量的行和动态数量的列,如下所示:

Matrix<float, 3, Dynamic>
矩阵<浮点、3、动态>
Matrix3f a;
MatrixXf b;

a 是一个 3 x 3 矩阵,包含一个未初始化系数的普通 float[9] 数组、
b 是一个动态大小的矩阵,当前大小为 0 乘 0,其系数数组尚未分配。

MatrixXf a(10,15);
VectorXf b(30);

a 是一个 10x15 的动态矩阵,系数已分配但当前未初始化。
b 是一个动态大小为 30 的向量,系数已分配但当前未初始化。

Matrix3f a(3,3)

and is a no-operation. 无效操作

矩阵和向量也可以从系数列表初始化。在 C++11 之前,此功能仅限于小型固定大小列或最大大小为 4 的向量:

Vector2d a(5.0, 6.0);
Vector3d b(5.0, 6.0, 7.0);
Vector4d c(5.0, 6.0, 7.0, 8.0);

开启 c++11

Vector2i a(1, 2);                      // A column vector containing the elements {1, 2}
Matrix<int, 5, 1> b {1, 2, 3, 4, 5};   // A row-vector containing the elements {1, 2, 3, 4, 5}
Matrix<int, 1, 5> c = {1, 2, 3, 4, 5}; // A column vector containing the elements {1, 2, 3, 4, 5}

In the general case of matrices and vectors with either fixed or runtime sizes, coefficients have to be grouped by rows and passed as an initializer list of initializer list (details ):
在具有固定大小或运行时大小的矩阵和向量的一般情况下,系数必须按行分组并作为初始值设定项列表的初始值设定项列表传递(详细信息):):

MatrixXi a {      // construct a 2x2 matrix
      {1, 2},     // first row
      {3, 4}      // second row
};
Matrix<double, 2, 3> b {
      {2, 3, 4},
      {5, 6, 7},
};

For column or row vectors, implicit transposition is allowed. This means that a column vector can be initialized from a single row:
对于列向量或行向量,允许隐式转置。这意味着可以从单行初始化列向量:

VectorXd a {{1.5, 2.5, 3.5}};             // A column-vector with 3 coefficients
RowVectorXd b {{1.0, 2.0, 3.0, 4.0}};     // A row-vector with 4 coefficients

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/495378.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

引言 在移动应用程序的开发中&#xff0c;了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法&#xff0c;可以让我们分析应用程序的网络请求和响应&#xff0c;了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具&#xff0c;可以帮助我们在 Android …

借鉴LangChain思想使用Java实现大模型Function_Call工具开发及调用功能

关注公众号&#xff0c;回复“工具调用”获取代码。 背景 博主之前研究的是ChatGLM3模型&#xff0c;该模型提供了Openai方式调用工具的代码。但后续转到Qwen1.5模型后&#xff0c;好像不可以直接用Openai接口的方式调用工具了。 然后&#xff0c;博主研究了Qwen-Agent框架&a…

如何备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

有家长朋友问&#xff0c;有没有适合初中学生参加的奥数类比赛&#xff1f;我推荐AMC10美国数学竞赛&#xff0c;在国内可以方便地参加&#xff0c;而且每年全国各省市参加的初中生越来越多。关于AMC10详细的介绍和常见问题解答&#xff0c;可以联系我获得。 那么如何在AMC10竞…

【智能算法】流向算法(FDA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;H Karami等人受到水流运动规律启发&#xff0c;提出了流向算法&#xff08;Flow Direction Algorithm&#xff0c; FDA&#xff09;。 2.算法原理 2.1算法思想 FDA受到了流入排…

Jenkins用户角色权限管理

Jenkins作为一款强大的自动化构建与持续集成工具&#xff0c;用户角色权限管理是其功能体系中不可或缺的一环。有效的权限管理能确保项目的安全稳定&#xff0c;避免敏感信息泄露。 1、安装插件&#xff1a;Role-based Authorization Strategy 系统管理 > 插件管理 > 可…

第十一章:位运算符与位运算

文章目录 第十一章&#xff1a;位运算符与位运算1.按位与运算&#xff1a;&2.按位或运算&#xff1a;|3.按位异或运算&#xff1a;^4.取反运算符&#xff1a;~5.左移运算符&#xff1a;<<6.右移运算符&#xff1a;>>总结 第十一章&#xff1a;位运算符与位运算…

StringRedisTemplate与RedisTemplate详解【序列化的方式不同】

spring 封装了 RedisTemplate 对象来进行对redis的各种操作&#xff0c;它支持所有的 redis 原生的 api。在RedisTemplate中提供了几个常用的接口方法的使用&#xff0c;分别是: private ValueOperations<K, V> valueOps; private HashOperations<K, V> hashOps; …

回文数个数-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第43讲。 回文数个数&#…

Unity 学习日记 12.小球撞击冰块游戏

目录 1.准备场景 2.让小球动起来 3.用鼠标把小球甩出去 4.加入鼠标点击小球的判断 5.小球与冰块的碰撞测试 6.撞击后销毁冰块 ​编辑 7.显示游戏计时 8.显示扔球次数 9.显示剩余冰块个数 10.游戏结束 11.完整代码 下载源码 UnityPackage 最终效果&#xff1a; 1.准…

【氮化镓】位错对氮化镓(GaN)电子能量损失谱(EEL)的影响

本文献《Influence of dislocations on electron energy-loss spectra in gallium nitride》由C. J. Fall等人撰写&#xff0c;发表于2002年。研究团队通过第一性原理计算&#xff0c;探讨了位错对氮化镓&#xff08;GaN&#xff09;电子能量损失谱&#xff08;EEL&#xff09;…

八大排序之堆排序

堆排序算法思想&#xff1a; 堆排序是利用二叉树的原理&#xff0c;模拟二叉树将所求的数据放入存放树中&#xff0c;先将所有数据按照大根堆排列&#xff0c;排列之后再依次的给树按从小到大排列. 例如 2 5 44 21 11 6 1 9 我们将数据按照这样的二叉树的形式列举出来&#…

FPGA时钟资源详解(1)——时钟Buffer的选择

FPGA时钟系列文章总览&#xff1a;FPGA原理与结构&#xff08;14&#xff09;——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 二、时钟Buffer的选择 2.1 BUFG 2.2 BUFR 和 BUFIO 2.2.1 源同步接口的支持 2.2.2 扩展时钟域…

DREAM: A Dynamic Scheduler for Dynamic Real-time Multi-model ML Workloads——论文泛读

ASPLOS 2024 Paper 论文阅读笔记整理 问题 新兴的实时多模型ML&#xff08;RTMM&#xff09;工作负载&#xff0c;如AR/VR和无人机控制&#xff0c;涉及各种粒度的动态行为&#xff1a;任务、模型和模型中的层。这种动态行为给ML系统中的系统软件带来了新的挑战&#xff0c;与…

深度学习中不同学习率调整策略

1、StepLR 功能&#xff1a;固定等间隔调整学习率 主要参数&#xff1a; step_size:调整间隔数 gamma&#xff1a;调整系数 调整方式&#xff1a; l r l r ∗ g a m m a lrlr\ast gamma lrlr∗gamma 2、MultiStepLR 功能&#xff1a;按给定间隔调整学习率 主要参数&#xf…

Linux——磁盘与文件系统管理

目录 磁盘分区的表示 硬盘分区 分区类型 确认系统中的磁盘设备——fdisk 规划硬盘中的分区——fdisk 文件系统 文件系统类型&#xff1a; 在分区中创建文件系统——mkfs&#xff0c;mkswap 挂载文件系统 mount命令 umount命令 查看分区挂载情况 设置启动载入&…

负荷频率控制LFC,自抗扰ADRC控制,麻雀SSA算法优化自抗扰参数,两区域二次调频simulink/matlab

红色曲线为优化结果&#xff0c;蓝色曲线为没有自抗扰和没有优化的结果&#xff01;

Mac系统中使用VSCode安装C#开发环境进行编译调试

VSCode安装插件 C#c# Dev Kit 安装Mac版本 .net .net下载地址 查看安装结果 dotnet --list-sdksdotnet --info配置环境变量 open -e ~/.bash_profile添加如下内容 export DOTNET_ROOT/usr/local/share/dotnet export PATH$PATH:$DOTNET_ROOT终端重新加载配置文件 sourc…

原子激光器(原子激射器)可发射相干原子束 目前仍处于技术研究阶段

原子激光器&#xff08;原子激射器&#xff09;可发射相干原子束 目前仍处于技术研究阶段 原子激光器&#xff0c;也称为原子激射器&#xff0c;是一种能够产生原子激光的器件。原子激光由粒子组成&#xff0c;拥有频率和波长&#xff0c;原子激光器受激发射电磁波&#xff0c;…

顺丰接口接入-主要处理下单接口上电子面单上传问题

概述 最近接到一个需求&#xff0c;需要和顺丰接口对接。由于是第一次对接&#xff0c;就需要把所有的流程全部走一遍&#xff0c;从 注册到 关联API 以及代码测试&#xff0c;电子面单审核&#xff0c;上线&#xff0c;下面就分开来说明把。本来是想着偷懒来着&#xff0c;作…

Days 35 ElfBoard板对Java的支持

Java作为一种功能强大且广泛应用的编程语言&#xff0c;具有广泛的适应性和实用性。在ELF 1开发板上集成Java支持&#xff0c;无疑将赋予嵌入式开发者更广阔的选择空间&#xff0c;今天就为各位小伙伴详细解析如何在ELF 1开发板上成功部署和运行Java环境。 1.拷贝两个压缩包到E…
最新文章