Eigen庫的簡單使用

2021-09-24 15:41:58 字數 2300 閱讀 1138

eigen是乙個c++開源線性代數庫。提供有關矩陣的的線性代數運算,解方程等功能。

官方的文件在此,本文是簡單的使用,以slam十四講**閱讀,快速入門。

$ sudo apt-get install libeigen3-dev

module

contents

#include

matrix and array classes, basic linear algebra (including triangular and selfadjoint products), array manipulation

#include

transform, translation, scaling, rotation2d and 3d rotations (quaternion, angleaxis)

#include

inverse, determinant, lu decompositions with solver (fullpivlu, partialpivlu)

#include

llt and ldlt cholesky factorization with solver

#include

householder transformations; this module is used by several linear algebra modules

#include

svd decompositions with least-squares solver (jacobisvd, bdcsvd)

#include

qr decomposition with solver (householderqr, colpivhouseholderqr, fullpivhouseholderqr)

#include

eigenvalue, eigenvector decompositions (eigensolver, selfadjointeigensolver, complexeigensolver)

#include

sparse matrix storage and related basic linear algebra (sparsematrix, sparsevector)

#include

includes core, geometry, lu, cholesky, svd, qr, and eigenvalues header files

#include

includes dense and sparse header files (the whole eigen library)

文件很多,形式多樣,具體見下面的**段及注釋。

#inlcude #include #include using namespace std;

int main( int argc, char** ar** )

下面看下如何用eigen來進行旋轉、平移的剛體變換矩陣,以及旋轉矩陣,尤拉角,四元數之間的轉換和運算。

#include #include using namespace std;

#include // eigen 幾何模組

#include /****************************

* 本程式演示了 eigen 幾何模組的使用方法

****************************/

int main ( int argc, char** ar** )

{ // eigen/geometry 模組提供了各種旋轉和平移的表示

// 3d 旋轉矩陣直接使用 matrix3d 或 matrix3f

eigen::matrix3d rotation_matrix = eigen::matrix3d::identity();

// 旋轉向量使用 angleaxis, 它底層不直接是matrix,但運算可以當作矩陣(因為過載了運算子)

eigen::angleaxisd rotation_vector ( m_pi/4, eigen::vector3d ( 0,0,1 ) ); //沿 z 軸旋轉 45 度

cout .precision(3);

cout<

用到的就是這些函式。

其中ctime用於計時。

**讀完,應該能理解不少,如果其他需求還需要看官方文件。

這篇部落格不錯

eigen 的簡單使用

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

Eigen介紹及簡單使用

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!eigen是可以用來進行線性代數 矩陣 向量操作等運算的c 庫,它裡面包含了很多演算法。它的license是mpl2。它支援多平台。eigen採用原始碼的方式提供給使用者使用,在使用時只需要包含eigen的標頭檔案即可進行使用。之所以採用這種方式,...

Qt使用Eigen矩陣庫

eigen官網 解壓後放在任意資料夾內,然後在qt專案中的pro檔案中加上eigen的目錄 如果沒有載入成功,重新構築即可 includepath d eigen3新增標頭檔案 include定義向量 字尾是變數型別,例如float矩陣是matrix2f vector2d a 5.0,6.0 cou...