如何在c 中调用matlab函数,怎样在C/C++语言里调用Matlab Engine

怎样在C/C++语言里调用Matlab Engine

Windows下调用Matlab引擎要做好以下三点设置

(1) 设置头文件目录

(2) 设置库文件目录,并添加链接库输入项libeng.lib和libmx.lib

(3) 设置环境变量

以下以Visual Studio 2008为例来说明如何设置这三点:

1、添加头文件目录

依次选择:“工具”->“选项”,调出对话框后

再在对话框左边“选择项目和解决方案”->“VC++目录”

然后在右边选择“显示以下内容的目录”下的选框选择“包含文件”,再在目录列表的最下边空行处选中添加:matlab安装目录下的\extern\include路径比如我的是:C:\Program

Files\MATLAB\R2011a\extern\include

如果现在生成项目,链接将不会通过,比如可能会出现:

1>engwindemo.obj : error LNK2019:

无法解析的外部符号_mxDestroyArray,该符号在函数_WinMain@16 中被引用

1>engwindemo.obj : error LNK2019:

无法解析的外部符号_mxGetPi,该符号在函数_WinMain@16 中被引用

1>engwindemo.obj : error LNK2019:

无法解析的外部符号_engClose,该符号在函数_WinMain@16 中被引用

等链接错误;这就需要设置下面的库文件目录

2、添加库文件目录

在刚才调出来的对话框中,设置库目录:选择“显示以下内容的目录”下的选框选择“库文件”添加matlab目录下的

C:\Program

Files\MATLAB\R2011a\extern\lib\win32\microsoft

注意:如果是项目要生成的是64位程序那么应该选择的是

C:\Program

Files\MATLAB\R2011a\extern\lib\win64\microsoft

点击确定退出对话框,然后给项目添加链接库输入项:

在解决方案资源管理器里选择对应的项目单机右键选择最下面的“属性”弹出属性对话框,在右边依次选择“配置属性”->“链接器”->“输入”,然后在右边“附加依赖项”那一项加上libeng.lib

libmx.lib

单击确定退出

注意:

(1) 不要删除原有的依赖项

(2) 依赖项之间用空格隔开

做到这一步时生成时就没问题出现了,但是运行程序时会出现“因为计算机中丢失libeng.dll”等类似问题

第(3)步就解决这个问题的。

(3)添加可执行文件目录

设置系统环境变量:把C:\Program

Files\MATLAB\R2011a\bin\win32;添加到PATH里边(如果是64位系统则添加C:\Program

Files\MATLAB\R2011a\bin\win64)。

在Win7下具体可以这样做:在桌面上选择“计算机”图标,右键弹出选单,在其中选择“属性”,然后在弹出的窗口中选中左边的高级系统设置,在属性对话框里选择“高级”选项卡,载选择“环境变量”,在新对话框里的系统环境下边找到PATH这一项选中,然后编辑,在后边添加

C:\Program Files\MATLAB\R2011a\bin\win32;

64位系统选择

C:\Program Files\MATLAB\R2011a\bin\win64;

注意:不要删除PATH里原有的其他路径

如果设置环境变量前打开了visual studio ,那么需要重启visual studio。

完成这三步,那么祝贺你,现在已经大功告成了!

来看看C/C++程序调用matlab的效果吧!

实际上,通过引擎方式建立的对话,是将Matlab以ActiveX控件方式启动的。在Matlab初次安装时,会自动执行一次:matlab /regserver将自己在系统的控件库中注册。如果因为特殊原因,无法打开Matlab引擎,可以在Dos命令提示符后执行上述命令,重新注册。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值