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...