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 ;

 }

三、参考资料

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值