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 }
点击运行,结果如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2022-04-02 Mitsubishi 三菱PLC FX5U SLMP协议和MC协议
2022-04-02 Mitsubishi 三菱PLC MC协议的配置和使用简析
2022-04-02 Mitsubishi 三菱PLC FX3U-ENET-L网络通讯模块MC协议通讯
2022-04-02 Mitsubishi 三菱Q系列PLC MC协议通讯
2021-04-02 Qt 延时之QApplication::processEvents详解
2021-04-02 Qt 设置按钮禁用
2020-04-02 Qt 教你使用windeployqt工具来进行Qt的打包发布