安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)

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配置方式

随便打开一个空项目
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第1张图片

在右侧解决方案资源管理器上,对项目名点击右键,属性
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第2张图片

安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第3张图片

配置和平台选择 所有配置,所有平台
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第4张图片
左侧点VC++目录,然后右侧选包含目录,编辑
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第5张图片
把你解压的文件夹目录写入
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第6张图片

完成

测试一下

#include 
#include 

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

结果
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第7张图片

Windows下minGW+VS code配置方式

假设你已经配置好了VS CODE和minGW,可以进行正常的C++代码编译调试。
现在来增加第三方库eigen

ctrl+shift+P打开命令面部。或者左下角齿轮,点击命令面板。
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第8张图片
编辑配置(UI)
这一步其实是配置c_cpp_properties.json这个文件,是配置C/C++这个插件的。

这个插件的目的是高亮、语法检查和代码预览等。也就是用来方便用户查看的,并非是真正的编译器,在此的配置也是为了正确显示高亮和语法检查等。
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第9张图片

会弹出C/C++这个插件的配置,找到包含路径,把目录复制进去。最后以**结束代表搜索其子文件夹。
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第10张图片

然后配置编译器。
编译器用的是minGW,其实就是linux上的gcc移植到windows的版本。

打开命令面部,选择配置默认生成任务
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第11张图片
会自动打开tasks.json
只需要增加一行即可

"-I'E:/App/eigen-3.3.8'"

安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第12张图片
完成

运行结果测试
测试代码

#include 
#include 

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();
}

结果
安装和使用C++线性代数库eigen(Windows下minGW+VS code, VS2019配置方式)_第13张图片

补充: 一劳永逸的方法

放到自己的工程文件目录里即可

你可能感兴趣的:(C++,碎片知识,线性代数,c++,matlab)