Eigen官网教程 (4) 高级初始化
本页讨论了几种用于初始化矩阵的高级方法。它提供了之前介绍的逗号初始化器的更多细节。它还解释了如何获得特殊矩阵,例如单位矩阵和零矩阵。
1 逗号初始化程序
Eigen提供逗号初始化语法,允许用户轻松设置矩阵,向量或数组的所有系数。只需列出系数,从左上角开始,从左到右,从上到下移动。需要事先指定对象的大小。如果列出的系数太少或太多,Eigen会抱怨。
而且,初始化列表的元素本身可以是向量或矩阵。常见的用途是将矢量或矩阵连接在一起。例如,以下是如何将两个行向量连接在一起。请记住,必须先设置大小才能使用逗号初始值设定项。
我们可以使用相同的技术来初始化具有块结构的矩阵。
逗号初始值设定项也可用于填充块表达式,例如 m.row(i)。这是获得与上面第一个示例相同结果的更复杂方法:
2.特殊矩阵和数组
2.1 矩阵和阵列类具有静态方法等Zero(),其可用于所有系数初始化到零。有三种变体。
第一个变量不带参数,只能用于固定大小的对象。如果要将动态大小对象初始化为零,则需要指定大小。
第二个变体需要一个参数,并且可以用于一维动态大小的对象,
第三个变体需要两个参数,并且可以用于二维对象。以下示例说明了所有三种变体:
2.2 类似地,静态方法Constant(value)将所有系数设置为value
如果需要指定对象的大小,则附加参数将在value参数之前,如
MatrixXd::Constant(rows, cols, value). Random()方法用随机系数填充矩阵或数组。
行 列 值
可以通过调用Identity()获得单位矩阵;
此方法仅适用于Matrix,不适用于Array,因为“单位矩阵”是线性代数概念。
LinSpaced(size, low, high)仅适用于向量和一维数组;
它产生一个指定大小的向量,其系数在low和high之间等间隔size。方法LinSpaced() 在下面的示例中进行了说明,该示例打印一个表格,其角度为度,相应的角度为弧度,以及它们的正弦和余弦。
此示例显示可以将LinSpaced()返回的对象分配给变量(和表达式)。Eigen定义了实用函数,如setZero(),MatrixBase :: setIdentity()和DenseBase :: setLinSpaced(),可以方便地执行此操作。以下示例对比了构造矩阵的三种方法
使用静态方法和赋值, 使用静态方法和逗号初始化程序, 或使用setXxx()方法。
3. 用作临时对象
如上所示,静态方法如Zero()和Constant()可用于在声明时或在赋值运算符的右侧初始化变量。您可以将这些方法视为返回矩阵或数组; 实际上,它们返回所谓的表达式对象,在需要时可以计算矩阵或数组,因此这种语法不会产生任何开销。
这些表达式也可以用作临时对象。
Eigen官网教程 (4) 高级初始化相关推荐
- Eigen官网教程(1) Matrix相关
1. Eigen库与头文件 Eigen库被分为了一个Core模块和几个其他额外的模块,每个模块都有对应的头文件,使用时需要进行包含.其中通过Dense和Eigen头文件可以很方便的使用其他的模块,因此 ...
- Eigen官网教程(2) Array类和元素级操作
0 引言 Array类提供了和Matrix不同的操作,Matrix主要为了线性代数而设计,而Array类是通常用的数组.Array类提供了更方便的元素级的操作,但是没有线性代数方面的意义,比如给每个元 ...
- Eigen官网教程(7)geometry几何模块的实践
Eigen的几何模块用来表达空间的旋转.平移等变换.3维空间中刚体的运动有六个自由度,分别是绕3个轴的旋转运动和沿着3个轴的平移运动.对于旋转可以用3x3的旋转矩阵R表示,旋转矩阵描述了刚体经过矩阵作 ...
- Eigen官网教程(6) Map类
0 介绍 有时,您可能希望在Eigen中使用预定义的数字数组作为向量或矩阵.虽然一个选项是复制数据,但最常见的是您可能希望将此内存重新用作特征类型.幸运的是,使用Map类非常容易. 1 映射类型并声明 ...
- Eigen官网教程(5) 规约、范数等
1 Reductions 2 范数计算 向量的平方范数由squaredNorm()获得,等价于向量对自身做点积,也等同于所有元素平方和.Eigen也提供了norm()范数,返回的是squaredNor ...
- Gem5模拟器,详解官网教程Event-driven programming(五)
目录 一.解释一下gem5中的event-driven? 二.Creating a simple event callback (1)定义一个新的 C++ 类,并继承自 SimObject 抽象基类 ...
- java官网教程(基础篇)—— 基础的Java类 —— 基础 I / O
目录 基本 Java 类 基础 I/O I/O流 字节流 字符流 缓冲流 扫描和格式化 扫描 格式化 从命令行中进行IO操作 数据流 对象流 文件 I/O(采用 NIO.2) 什么是路径? Path类 ...
- Angular官网教程示例知识点总结
Angular官网教程示例知识点总结 1.背景 2.知识点 2.1 应用的外壳 2.1.1 使用 Angular CLI 创建初始的应用结构 2.1.2 启动应用服务器 2.1.3 双花括号表达式 2 ...
- [pytorch] 官网教程+注释
pytorch官网教程+注释 Classifier import torch import torchvision import torchvision.transforms as transform ...
最新文章
- Linux命令篇之usermod命令和passwd命令
- Docker(基础理解)
- JavaScript比较数组的方法
- 五分钟了解一致性hash算法!
- nginx源码分析configure脚本详解
- 线性表(代码、分析、汇编)
- AM335x关于LCD屏幕的时钟PLL配置
- 四二拍用音符怎么表示_2020圣诞平安夜怎么发朋友圈?朋友圈关于平安夜经典语录精选...
- 多媒体课件利用计算机开发工具将,多媒体课件设计与制作教程PPT演示课件
- C11新特性(部分)
- cadvisor 常用容器监控指标
- [转载]推荐的Windows7精简版资源
- 码农翻身讲网络4:从Token到Sessions说到OAuth认证和CAS单点登录
- 从现在开始,格外珍惜时间,让生活充实起来
- CV7 颜色追踪和图像阈值
- 中国人数学能力很差?
- DCOS到底是啥?看完这篇你就懂了~
- 一定要学会的vsCode格式化整理代码的快捷键,再也不用手动调格式了
- [收藏]POSIX标准
- 2019access创建数据表、查询和窗体
热门文章
- vim插件管理器minpac安装及使用
- OpenAI高调站队Pytorch,怎样学Pyorch?
- Wamp修改httpd.conf中的DocumentRoot不生效解决办法
- Spark 【数据挖掘平台介绍】 - Spark 1.1.0(看范式粒度)
- python fun函数、求4x4整型数组的主对角线元素的和_python中多维数组中列major的numpy整形...
- 应用宝认领应用签名_腾讯应用宝认领应用步骤
- 什么是静态,静态有什么作用呢?
- mysql备份到带库_备份离线就必须上物理带库?
- 我的世界服务器怎么修复锁链甲,我的世界手机版锁链甲怎么做 怎么获得
- linux下 java 文本_Java中如何将输入的信息写入文本中