C++ 矩陣運算庫Eigen3 使用教程

一、引言

Eigen是線性代數的C ++模板庫,提供矩陣,向量,數值求解器和相關算法,並具有較高的運算速度,經常採用。

二、內置函數使用說明

1) 使用舉例
  • main.cpp
#include <iostream>
#include "Eigen/Dense"
using namespace std;

int main()
{
    Eigen::Matrix3d F;
    F <<
      1,   0,  0,
      0,  -1,  0,
      0,   0,  1;

    Eigen::Vector3d m;
      m(0) = 3;
      m(1) = 2.5;
      m(2) = -1;

    Eigen::Vector3d res = F*m;
    cout<<res<<endl;

    return 1;
}
  • 編譯所需CMakelist
# cmake version 
cmake_minimum_required(VERSION 2.8)

# project name
project( eigen_test )

# eigen  
SET(EIGEN3_INCLUDE_DIR  /usr/include/eigen3)
INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})

# Generate executable file
add_executable( Demo main.cpp )

2) 利用小矩陣構造大矩陣

#include <iostream>
#include "Eigen/Dense"
using namespace std;

int main()
{
  Eigen::Matrix4d T; 
  Eigen::Matrix3d F;
    F <<
      0.51,  0.2,  0.57,
      0.86,  -1,  -0.67,
      0.5,   0.3,  0.83; 

  T.topLeftCorner(3,3) = F;
  Eigen::Vector3d vec(5,8,9);
  T.col(3).head(3) << vec(0), vec(1), vec(2);
  T.row(3) << 0,0,0,1;

  cout << "T <<" << endl << T << endl ;

 }

三、參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章