C++_Eigen函数库用法笔记——Advanced Initialization
- The comma initializer
- a simple example
- join and block initialize
- join two row vectors together
- initialize metrics with block structure
- fill block expression
- Special metrics and arrays
- Zero();
- Array33f::Zero();
- ArrayXf::Zero(3);
- ArrayXXf::Zero(3,4);
- Constant(rows,cols,value);
- Identity();
- LinSpaced
- 3 ways to construct the matrix
- Zero();
- Usage as temporary objects
- The comma initializer
- a simple example
Matrix3f m;m << 1, 2, 3,4, 5, 6,7, 8, 9;std::cout << m;
- join and block initialize
- join two row vectors together
RowVectorXd vec1(3);vec1 << 1, 2, 3;std::cout << "vec1 = " << vec1 << std::endl;RowVectorXd vec2(4);vec2 << 1, 4, 9, 16;;std::cout << "vec2 = " << vec2 << std::endl;RowVectorXd joined(7);joined << vec1, vec2;std::cout << "joined = " << joined << std::endl;vec1 = 1 2 3
vec2 = 1 4 9 16
joined = 1 2 3 1 4 9 16 - initialize metrics with block structure
MatrixXf matA(2, 2);matA << 1, 2, 3, 4;MatrixXf matB(4, 4);matB << matA, matA/10, matA/10, matA;std::cout << matB << std::endl;1 2 0.1 0.2
3 4 0.3 0.4
0.1 0.2 1 2
0.3 0.4 3 4 - fill block expression
Matrix3f m;m.row(0) << 1, 2, 3;m.block(1,0,2,2) << 4, 5, 7, 8;m.col(2).tail(2) << 6, 9;std::cout << m;1 2 3
4 5 6
7 8 9
- join two row vectors together
- a simple example
- Special metrics and arrays
- Zero()
- Array33f::Zero();
- ArrayXf::Zero(3);
- ArrayXXf::Zero(3,4);
std::cout << "A fixed-size array:\n";Array33f a1 = Array33f::Zero();std::cout << a1 << "\n\n";std::cout << "A one-dimensional dynamic-size array:\n";ArrayXf a2 = ArrayXf::Zero(3);std::cout << a2 << "\n\n";std::cout << "A two-dimensional dynamic-size array:\n";ArrayXXf a3 = ArrayXXf::Zero(3, 4);std::cout << a3 << "\n";A fixed-size array:
0 0 0
0 0 0
0 0 0A one-dimensional dynamic-size array:
0
0
0A two-dimensional dynamic-size array:
0 0 0 0
0 0 0 0
0 0 0 0
- Constant(rows,cols,value);
- Identity();
- LinSpaced
ArrayXXf table(10, 4);table.col(0) = ArrayXf::LinSpaced(10, 0, 90);table.col(1) = M_PI / 180 * table.col(0);table.col(2) = table.col(1).sin();table.col(3) = table.col(1).cos();std::cout << " Degrees Radians Sine Cosine\n";std::cout << table << std::endl;Degrees Radians Sine Cosine
0 0 0 1
10 0.175 0.174 0.985
20 0.349 0.342 0.94
30 0.524 0.5 0.866
40 0.698 0.643 0.766
50 0.873 0.766 0.643
60 1.05 0.866 0.5
70 1.22 0.94 0.342
80 1.4 0.985 0.174
90 1.57 1 -4.37e-08 - 3 ways to construct the matrix
const int size = 6;MatrixXd mat1(size, size);mat1.topLeftCorner(size/2, size/2) = MatrixXd::Zero(size/2, size/2);mat1.topRightCorner(size/2, size/2) = MatrixXd::Identity(size/2, size/2);mat1.bottomLeftCorner(size/2, size/2) = MatrixXd::Identity(size/2, size/2);mat1.bottomRightCorner(size/2, size/2) = MatrixXd::Zero(size/2, size/2);std::cout << mat1 << std::endl << std::endl;MatrixXd mat2(size, size);mat2.topLeftCorner(size/2, size/2).setZero();mat2.topRightCorner(size/2, size/2).setIdentity();mat2.bottomLeftCorner(size/2, size/2).setIdentity();mat2.bottomRightCorner(size/2, size/2).setZero();std::cout << mat2 << std::endl << std::endl;MatrixXd mat3(size, size);mat3 << MatrixXd::Zero(size/2, size/2), MatrixXd::Identity(size/2, size/2),MatrixXd::Identity(size/2, size/2), MatrixXd::Zero(size/2, size/2);std::cout << mat3 << std::endl;
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0 0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0 0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
- Zero()
- Usage as temporary objects
MatrixXf mat = MatrixXf::Random(2, 3);std::cout << mat << std::endl << std::endl;mat = (MatrixXf(2,2) << 0, 1, 1, 0).finished() * mat;std::cout << mat << std::endl;0.68 0.566 0.823
-0.211 0.597 -0.605-0.211 0.597 -0.605
0.68 0.566 0.823
C++_Eigen函数库用法笔记——Advanced Initialization的更多相关文章
- C++_Eigen函数库用法笔记——The Array class and Coefficient-wise operations
The advantages of Array Addition and subtraction Array multiplication abs() & sqrt() Converting ...
- C++_Eigen函数库用法笔记——Block Operations
Using block operations rvalue, i.e. it was only read from lvalues, i.e. you can assign to a block Co ...
- C++_Eigen函数库用法笔记——Matrix and Vector Arithmetic
Addition and subtraction Scalar multiplication and division Transposition Matrix-matrix and matrix-v ...
- PHP中正则替换函数preg_replace用法笔记
今天应老板的需求,需要将不是我们的页面修改一个链接,用js+iframe应该也能实现,但是我想尝试一下php实现方法. 首先你得先把别人的页面download到你的php中,实现方法可以用curl, ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- 转: ES6异步编程: co函数库的含义与用法
转: ES6异步编程: co函数库的含义与用法 co 函数库是著名程序员 TJ Holowaychuk 于2013年6月发布的一个小工具,用于 Generator 函数的自动执行. 比如,有一个 Ge ...
- makefile笔记10 - makefile 函数库文件
函数库文件也就是对 Object 文件(程序编译的中间文件)的打包文件.在 Unix 下,一般是由命令"ar"来完成打包工作. 一.函数库文件的成员 一个函数库文件由多个文件组成. ...
- OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法
函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...
- python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法
python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...
随机推荐
- Linux 读书笔记 二
一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 若不小心登出后,直接刷新页面即可 2. 环境使用 完成实验后可以点击桌面上方的“实验截图”保存并分 ...
- Jenkins进阶系列之——07更改Jenkins的主目录
Jenkins默认会存放在用户主目录下的.jenkins文件夹中 如:Linux root用户:/root/.jenkins 注意:这是linux版本的.windows系统请自行更改.这个值在Jenk ...
- Slider 滚动条 Pagination分页插件 JS Ajax 数据范围筛选 加载 翻页 笔记
入职以后的第二个任务 根据用户所选的价格范围 筛选数据 修复BUG - 筛选数据后 总数没有更新.列表显示错误.翻页加载错误 用到的一些知识点 jquery插件系列之 - Slider滑块 max ...
- STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。
是自定协议,用到一个bulk in ep1, 一个bulk out ep2 端点 用虚拟串口的优点显而易见,上位机的编写非常方便,就按照常规的串口功能编写就可以了,而速度确还是usb的速度 USB ...
- php中的错误级别
在php编程过程中,大家一定会遇到或多或少的错误提醒,也正是这些错误提示,指引我们编写更加干净的代码,今天先写出我们主要列出的错误类型,先挖坑,写关于php错误与异常的相关知识,慢慢填坑. De ...
- Orchard创建自定义表单
本文链接:http://www.cnblogs.com/souther/p/4520130.html 主目录 自定义表单模块可以用来获取网站前台用户的信息.自定义表单需要与一个内容类型结合使用.它可以 ...
- mysql基础 事务的认识和使用
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务是恢复和并发控制的基本单位. 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 ...
- log4js
这一篇足够:转载:http://www.cnblogs.com/Joans/p/4092293.html 代码贴出来吧: log.js var log4js = require('log4js'); ...
- php 一次性替换多个关键词
str_replace(find,replace,string,count) 参数 描述 find 必需.规定要查找的值. replace 必需.规定替换 find 中的值的值. string 必需. ...
- 集群之LVS(负载均衡)详解
提高服务器响应能力的方法 scale on 在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器. scale out 横向扩展,将多台服务器并发向外响应客户端的请求.优点:成本低,扩展 ...