一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

Eigen简介
  Eigen支持包括固定大小、任意大小的所有矩阵操作,甚至是稀疏矩阵;支持所有标准的数值类型,并且可以扩展为自定义的数值类型;支持多种矩阵分解及其几何特征的求解;它不支持的模块生态系统提供了许多专门的功能,如非线性优化,矩阵功能,多项式解算器,快速傅立叶变换等。

  目前最新的版本是3.4,除了C++标准库以外,不需要任何其他的依赖包。Eigen使用的CMake建立配置文件和单元测试,并自动安装。如果使用Eigen库,只需包含特定模块的的头文件即可。

  下载地址:http://eigen.tuxfamily.org/index.php?title=Main_Page

Eigen的使用

  下载后放置在指定目录,例如:C:/eigen-3.4.0

 进入Eigen目录

可以看到这里只是文件并不是通常意义的header文件,真正的源码在src目录里面。

打开QT creator,新建一个QT的控制台应用程序,选择qmake(如果使用的cmake需要在cmakelists.txt文件中加入Eigen路径:include_directories(c:/eigen-3.4.0))。

在pro中加入eigen的文件目录

INCLUDEPATH += C:/eigen-3.4.0

mai.cpp代码如下

 1 #include <QCoreApplication>
 2  
 3 #include <iostream>
 4 #include "Eigen/Dense"
 5  
 6 using namespace  Eigen;//注意要大写
 7  
 8 int main(int argc, char *argv[])
 9 {
10     QCoreApplication a(argc, argv);
11  
12     Matrix2d m;
13     m<<1,2,
14             3,4;
15  
16     MatrixXd n(2,2);
17     n<< 2, 3,
18             4, 5;
19  
20     std::cout << "a + b =\n" << m + n << std::endl;
21     std::cout << "a - b =\n" << m - n << std::endl;
22     std::cout << "Doing a += b;" << std::endl;
23     m += n;
24     std::cout << "Now a =\n" << m << std::endl;
25  
26     Vector3d v(1,2,3);
27     Vector3d w(1,0,0);
28  
29     std::cout << "-v + w - v =\n" << -v + w - v << std::endl;
30  
31     return a.exec();
32 }

 点击运行,结果如下:

 

posted on 2024-04-02 11:50  一杯清酒邀明月  阅读(653)  评论(0编辑  收藏  举报