C++通过engine引擎调用matlab

本文详细介绍了如何在C++项目中通过Matlab引擎进行调用。首先,需要在Matlab 2016a中设置工作目录并配置为C++编译方式。接着,通过命令提示符手动测试Matlab引擎的可用性。然后,在VS2015中创建C++空项目,设置项目属性,包括包含目录、库目录和附加依赖项。最终,运行测试代码并成功调用Matlab引擎。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值