一、Matlab准备
1、打开matlab(2016a),设置工作目录(D:\MATLAB\R2016a\bin)。
2、将Matlab配置为C++编译方式,在命令行输入mex -setup,显示:

3、选择 mex -setup C++ ,显示:

4.则说明初步完成。
二、Matlab引擎手动测试
1、关闭Matlab主程序,打开命令提示符(管理员)。
2、将目录转到Matlab主程序的目录下,输入Matlab /regserver。
3、数秒之后显示出Matlab Command Window,并显示:

4、手动测试完成,Matlab引擎可以使用。
三、C++项目设置
1、创建C++空项目(VS2015)。
2、设置项目属性:
平台:X64
配置属性>VC++目录>包含目录:增加 D: \MATLAB\R2016a\extern\include;

配置属性>VC++目录>库目录:增加 D:\MATLAB\R2016a\extern\lib\win64\microsoft;

配置属性>链接器>输入>附加依赖项:libeng.lib;libmx.lib;libmex.lib;mclmcrrt.lib;

运行测试代码:
#include <iostream>
#include <engine.h>
using namespace std;
int main()
{
Engine * mat;
const char *commandchar;
//打开引擎
if (!(mat = engOpen("\0")))
{
printf_s("Cannot start MATLAB engine!");
}
//使用引擎
commandchar = "t=0:0.01:2*pi;y=sin(t);h=plot(t,y)";
engEvalString(mat, commandchar);
//关闭引擎
system("pause");
engClose(mat);
}
得到下列结果,说明运行成功。

有可能有小伙伴会遇到“无法启动此程序,因为计算机中丢失xxxxx.dll”的错误,可以参考我下面一篇文章:
完美解决!无法启动此程序,因为计算机中丢失libmysql.dll解决方案(详细版!)
本文详细介绍了如何在C++项目中通过Matlab引擎进行调用。首先,需要在Matlab 2016a中设置工作目录并配置为C++编译方式。接着,通过命令提示符手动测试Matlab引擎的可用性。然后,在VS2015中创建C++空项目,设置项目属性,包括包含目录、库目录和附加依赖项。最终,运行测试代码并成功调用Matlab引擎。

5001

被折叠的 条评论
为什么被折叠?



