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', ' ')的函数 ...
随机推荐
- 在matlab中进行遥感影像地理坐标的相互转换
在matlab中进行图像处理,一般使用的都是图像本地坐标,以左上角(1,1)开始.处理完成后,如果要将结果在带地理坐标的遥感影像中显示,或者需要输出成shp文件,就需要涉及到本地坐标和地理坐标的转换, ...
- Gradle tip #3: Tasks ordering
I noticed that the quite often problem I face when I work with Gradle - is tasks ordering (either ex ...
- 20135316王剑桥 linux第十周课实验笔记
关于who 功能说明:显示目前登入系统的用户信息. 语 法:who [-Himqsw][--help][--version][am i][记录文件] 补充说明:执行这项指令可得知目前有那些用户登入系统 ...
- ios 消息推送流程 转载
iOS开发:推送通知简述及开发实践热度 1已有 706 次阅读 2013-10-15 09:23 |个人分类:经验之谈|系统分类:ios| IOS, 推送一.关于推送通知 推送通知,也被叫做远程通知, ...
- 20145215《Java程序设计》第5周学习总结
20145215<Java程序设计>第五周学习总结 教材学习内容总结 异常处理 语法与继承架构 异常就是程序在运行时出现不正常情况,异常的由来是因为Java把出现的问题封装成了对象,换句话 ...
- brew-cask 之本地更新 node
本文同步自我的个人博客:http://www.52cik.com/2015/11/04/brew-cask-local.html 今天 Node v4.2.2 (LTS) 发布,什么是 LTS 呢,百 ...
- 【APUE】Chapter17 Advanced IPC & sign extension & 结构体内存对齐
17.1 Introduction 这一章主要讲了UNIX Domain Sockets这样的进程间通讯方式,并列举了具体的几个例子. 17.2 UNIX Domain Sockets 这是一种特殊s ...
- http请求过程简要
一次http请求主要分为3个大步. 建立tcp连接. 这里就发生了经典的tcp三次握手.做个类比解释下,tcp好比http的秘书,和厂家(服务器端)做买卖.老板(http)叫秘书(tcp)去联系一下, ...
- 每天一个linux命令(10):more命令
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...
- hdu3613 扩展KMP
#include<stdio.h> #include<string.h> #define maxn 501000 char s[maxn],t[maxn]; int next[ ...