Eigen學習總結1

2021-10-23 21:42:56 字數 972 閱讀 1099

matrix有6個模板引數,主要使用前三個引數(元素型別,行數,列數),剩下的有預設值。

matrix
eigen的型別主要有矩陣、向量(其實也是一種矩陣),有固定大小和動態大小之分:

typedef matrixmatrix3f;      matrix3f a;//固定size的矩陣,分配3*3個float的空間

typedef matrixmatrixxd; matrixxd b;//動態size的矩陣,未分配空間;

向量:

typedef matrixvector3f; //列向量,固定大小

typedef matrixrowvector2i; //行向量,固定大小

typedef matrixvectorxi; //為固定大小,同理行向量

matrix3f m;

m(0,0);//用括號去找括號裡面對應位置的資料

m(index)也可以用於獲取矩陣元素,但取決於matrix的儲存順序,預設是按列儲存的。

取matrix4f中的某個區域,m.block<3,3>(0,0) 表示從下標(0,0)開始取3*3的區域, 如果時向量,可以取前面x個元素,m.head<3>()

用逗號初始化

m<<1,1,1,

2,2,2,

3,3,3;

matrix的大小可以通過rows()、cols()、size()獲取,resize()(只用於動態matrix)可以重新調整動態matrix的大小。

vector3f  m   3*1陣列

arrayxxd p(num, dim); 乙個num *dim 的陣列;

p = m.transpose.replicate(num,1)

得到每一行等於m的陣列,共有num行

Eigen學習總結

最早接觸eigen,是在高翔博士編著的 視覺slam十四講 中,今天在這裡整理一下。eigen是乙個c 開源線性代數庫。它提供了快速的有關矩陣的線性代數運算,還包括解方程等功能。許多上層的軟體庫也使用eigen 進行矩陣運算,包括g2o sophus 等。sudo apt get install l...

Eigen使用總結

matrix 初始化 matrixm matrixxd m x,y 初始化大小 matrix3d 特殊大小 不超過4 和資料型別 置0 1 常數 單位陣 matrix3d m eigen matrix3d zero 定義的時候使用臨時變數 eigen matrixxd zero rows,cols ...

Eigen初步1 初步體驗Eigen庫

前言 eigen 是乙個線性算術的c 模板庫,包括 vectors,matrices,開源以及相關演算法。功能強大 快速 優雅以及支援多平台,可以使用該庫來方便處理一些矩陣的操作,達到類似matlab那樣的快捷。現在已經發展到eigen3了,目前最新版本為eigen 3.1.2。eigen使用預備工...