matlab2019b运行C++程序(VS 2017)-其他版本的matlab和VS也适用哦
首先,我们配置VS2017。
打开VS,新建空项目,新建cpp文件。
右键单击项目,打开项目的属性页。
配置属性–>C/C+±->常规–>包含目录,添加D:\ProgramFiles\matlab2019b\extern\include、D:\ProgramFiles\matlab2019b\extern\include\win64。
配置属性–>链接器–>输入–>附加依赖项,添加libmx.lib、libmex.lib、libmat.lib、libeng.lib。
链接器–>常规–>附加库目录,添加D:\ProgramFiles\matlab2019b\extern\lib\win64\microsoft。
至此,VS的配置部分完成,接着,我们往cpp文件里面写代码
#include "mex.h"
double add(double x, double y)
{
return x + y;
}
//设置接口
void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
{
double* a;
double b, c;
plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL);
a = mxGetPr(plhs[0]);
b = *(mxGetPr(prhs[0]));
c = *(mxGetPr(prhs[1]));
*a = add(b, c);
}
最后,我们来配置matlab。
到这个网站里面https://ww2.mathworks.cn/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler,下载mingw,并把它放到安装目录下面。
双击mingw,用matlab打开它,matlab会自动下载安装程序。
然后在matlab中输入mex -setup,选择C++
再输入mbuild -setup,选择C++
把matlab的工作目录调换到VS工程目录下面,如图
新建.m脚本文件,我把它命名为my1,然后往脚本里面输入test1(2.0,5.0),即可运行得到结果:
ans =
7