Eigen使用總結

2021-10-03 02:28:23 字數 1185 閱讀 5932

matrix

初始化:

matrixm;

matrixxd m(x, y)//初始化大小

matrix3d//特殊大小(不超過4)和資料型別

置0、1、常數、單位陣

matrix3d m = eigen::matrix3d::zero();//定義的時候使用臨時變數

eigen::matrixxd::zero(rows, cols);//隨意指定大小的臨時變數

eigen::matrixxd::identity(rows, cols);

m.setzero();

m.setones();

m.setidentity();

m.setrandom();

m.setconstant();

賦值:mg, h, i;

m.row(n)=v;//用vector或者vector的切片給matrix的行賦值,不會引起歧義,是可以進行的

索引:m.block(start_ros, start_col, rows, col)

m.row()

m.col()//這兩種是block的特殊情況

vector:

初始化:

特殊的matrix

vector4f

vector3d v(1, 2, 3, 4)//

vector3d(1, 2, 3)臨時向量

origin_pt << m_sourcepointcloud[ix],1;//還可以這樣操作,公升維

索引:v.block(,,,)//vector是一種特殊的matrix,所以matrix可以用的vector也可以

v.segment(start, num)

v.head(num)

v.tail(num)

求模:v.norm()

v.squarednorm()//模長的平方

動態matrixxd

eien::matrixxd m;

m = ....(作為左值,其大小由右側確定)

a.conservativeresize(x, y)//動態矩陣確定大小

a.setzero()//全部設定為0

求解方程

求解方程ax=b

#include

a.colpivhouseholderqr().solve(b)

a.inverse()*b

Eigen學習總結

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

Eigen使用入門

eigen是可以用來進行線性代數 矩陣 向量操作等運算的c 庫,它裡面包含了很多演算法。它的license是mpl2。它支援多平台。eigen採用原始碼的方式提供給使用者使用,在使用時只需要包含eigen的標頭檔案即可進行使用。之所以採用這種方式,是因為eigen採用模板方式實現,由於模板函式不支援...

Eigen學習總結1

matrix有6個模板引數,主要使用前三個引數 元素型別,行數,列數 剩下的有預設值。matrixeigen的型別主要有矩陣 向量 其實也是一種矩陣 有固定大小和動態大小之分 typedef matrixmatrix3f matrix3f a 固定size的矩陣,分配3 3個float的空間 typ...