C++通过engine引擎调用matlab

心已入冬 提交于 2020-02-27 18:21:44

一、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解决方案(详细版!)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!