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使用預備工...