Eigen(1):Matrix模板类

Matrix是一个模板类,利用模板类可以定义矩阵类。

矩阵类模板:

1Matrix类有6个模板参数,只需要了解前3个就好了。

Matrix

参数解读:

  • Scalar表示矩阵中系数的类型。
  • RowsAtCompileTime 和ColsAtCompileTime 分别表示行数和烈数。

Eigen库也为特例化(方阵)的矩阵模板定义了类型别名,例如:

typedef Matrix Matrix4f;

定义未知阶数方阵的格式如下:

typedef Matrix MatrixXf;

2接下来是vector,向量其实是矩阵的一种特殊形式,只有一行或者一列。

比如定义一个4维列向量或者行向量如下:

//列向量
typedef Matrix vector4f;
//行向量
typedef Matrix Rowvector4f;

定义未知行列的向量格式如下:

typedef Matrix VectorXd;
//
typedef Matrix RowVectorXd;

3构造函数

(1)默认构造函数

Matrix3f a;//a是一个3x3的矩阵,系数未初始化
MatrixXf b;//b是一个动态大小的矩阵,默认他为0x0维,他的系数数组还未分配内存

(2)接受行数和列数的构造函数

MatrixXf a(10,15);//a是一个动态大小的矩阵,已分配了包含10x15维的数组内存,但元素未初始化
VectorXf b(30);//b是一个动态大小的向量,初始化为30维,分配了包含30维的数组内存,但元素未初始化
Matrix3f a(3,3);//接受行列数的构造函数

针对以上可以进行的操作有:访问元素,系数初始化,检索大小,赋值调整大小等操作。

你可能感兴趣的:(C++)