eigen是一个线性代数的第三方库
安装之后,只要include相应头文件,就可以方便地使用C++进行矩阵乘法,矩阵求逆等操作,像MATLAB一样(语法方面略微有区别,另一个同类的库armadillo的语法更像MATLAB,但是安装和配置没有eigen方便)。
安装eigen
eigen无需安装,直接下载源代码解压包解压即可。
下载地址(3.3.8版本):
https://gitlab.com/libeigen/eigen/-/archive/3.3.8/eigen-3.3.8.zip
官网:
http://eigen.tuxfamily.org/index.php?title=Main_Page
VS2019配置方式
随便打开一个空项目
在右侧解决方案资源管理器上,对项目名点击右键,属性
配置和平台选择 所有配置,所有平台
左侧点VC++目录,然后右侧选包含目录,编辑
把你解压的文件夹目录写入
完成
测试一下
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
Vector3d v(1,2,3);
Vector3d w(0,1,2);
cout << "Dot product: " << v.dot(w) << endl;
double dp = v.adjoint()*w; // automatic conversion of the inner product to a scalar
cout << "Dot product via a matrix product: " << dp << endl;
cout << "Cross product:\n" << v.cross(w) << endl;
}
代码来源: 官方example
E:\App\eigen-3.3.8\doc\examples\tut_arithmetic_dot_cross.cpp
结果
Windows下minGW+VS code配置方式
假设你已经配置好了VS CODE和minGW,可以进行正常的C++代码编译调试。
现在来增加第三方库eigen
ctrl+shift+P打开命令面部。或者左下角齿轮,点击命令面板。
编辑配置(UI)
这一步其实是配置c_cpp_properties.json这个文件,是配置C/C++这个插件的。
这个插件的目的是高亮、语法检查和代码预览等。也就是用来方便用户查看的,并非是真正的编译器,在此的配置也是为了正确显示高亮和语法检查等。
会弹出C/C++这个插件的配置,找到包含路径,把目录复制进去。最后以**结束代表搜索其子文件夹。
然后配置编译器。
编译器用的是minGW,其实就是linux上的gcc移植到windows的版本。
打开命令面部,选择配置默认生成任务
会自动打开tasks.json
只需要增加一行即可
"-I'E:/App/eigen-3.3.8'"
完成
运行结果测试
测试代码
#include <Eigen/Dense>
#include <iostream>
using namespace Eigen;
using namespace std;
int main()
{
ArrayXXf m(2,2);
// assign some values coefficient by coefficient
m(0,0) = 1.0; m(0,1) = 2.0;
m(1,0) = 3.0; m(1,1) = m(0,1) + m(1,0);
// print values to standard output
cout << m << endl << endl;
// using the comma-initializer is also allowed
m << 1.0,2.0,
3.0,4.0;
// print values to standard output
cout << m << endl;
getchar();
}
结果
补充: 一劳永逸的方法
放到自己的工程文件目录里即可
或者放到VS的include目录
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include