06 进阶初始化
进阶初始化
[TOC]
逗号初始化
输入数据
可以直接用逗号表达式输入数据。
Matrix3f m; |
输入矩阵
也可以将矩阵作为数据进行输入。
输入向量
RowVectorXd vec1(3); |
输入块矩阵
MatrixXf matA(2, 2); |
输入行或列(row/col)
Matrix3f m; |
特殊的矩阵和Array
-
Zero()
-
Constant(value)
-
Random()
-
Identity()
-
LinSpaced(size, low, high):仅用于向量或者一行/列,输入指定数目间隔的一组数
Zero
std::cout << "A fixed-size array:\n"; |
LinSpaced
ArrayXXf table(10, 4); |
Xx和SetXx
const int size = 6; |
临时对象(temp obj)
上述的Identity、Zero等静态函数成员看似是返回了一个矩阵,实则是返回的是一个表达式对象,这些对象在需要时计算结果为矩阵或数组,因此不存在任何开销。
它们也可以用作临时对象来参与计算:
|
逗号初始化的对象也可以作为临时对象参与计算:
MatrixXf mat = MatrixXf::Random(2, 3); |
此处的finished
是必须的,来使得表达式生成对应的矩阵对象。
发布于