Eigen(1):Matrix模板类
生活随笔
收集整理的這篇文章主要介紹了
Eigen(1):Matrix模板类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Matrix是一個(gè)模板類,利用模板類可以定義矩陣類。
矩陣類模板:
1Matrix類有6個(gè)模板參數(shù),只需要了解前3個(gè)就好了。
Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
參數(shù)解讀:
- Scalar表示矩陣中系數(shù)的類型。
- RowsAtCompileTime 和ColsAtCompileTime 分別表示行數(shù)和烈數(shù)。
Eigen庫(kù)也為特例化(方陣)的矩陣模板定義了類型別名,例如:
typedef Matrix<float, 4, 4> Matrix4f;
定義未知階數(shù)方陣的格式如下:
typedef Matrix<float, dynamic,dynamic> MatrixXf;
2接下來(lái)是vector,向量其實(shí)是矩陣的一種特殊形式,只有一行或者一列。
比如定義一個(gè)4維列向量或者行向量如下:
//列向量
typedef Matrix<float, 4, 1> vector4f;
//行向量
typedef Matrix<float, 1, 4> Rowvector4f;
定義未知行列的向量格式如下:
typedef Matrix<double, Dynamic, 1> VectorXd;
//
typedef Matrix<double, 1, Dynamic> RowVectorXd;
3構(gòu)造函數(shù)
(1)默認(rèn)構(gòu)造函數(shù)
Matrix3f a;//a是一個(gè)3x3的矩陣,系數(shù)未初始化
MatrixXf b;//b是一個(gè)動(dòng)態(tài)大小的矩陣,默認(rèn)他為0x0維,他的系數(shù)數(shù)組還未分配內(nèi)存
(2)接受行數(shù)和列數(shù)的構(gòu)造函數(shù)
MatrixXf a(10,15);//a是一個(gè)動(dòng)態(tài)大小的矩陣,已分配了包含10x15維的數(shù)組內(nèi)存,但元素未初始化
VectorXf b(30);//b是一個(gè)動(dòng)態(tài)大小的向量,初始化為30維,分配了包含30維的數(shù)組內(nèi)存,但元素未初始化
Matrix3f a(3,3);//接受行列數(shù)的構(gòu)造函數(shù)
針對(duì)以上可以進(jìn)行的操作有:訪問(wèn)元素,系數(shù)初始化,檢索大小,賦值調(diào)整大小等操作。
總結(jié)
以上是生活随笔為你收集整理的Eigen(1):Matrix模板类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PCL调错(2):VTK报错
- 下一篇: PCA(3):PCA实现C++代码