vc调用matlab (我的环境是win7+vs2008+matlab2010a)

使用MATLAB引擎方式实现VC与MATLAB混合编程的步骤如下:

1.  对于所有的使用MATLAB引擎方式实现VC与MATLAB混合编程的项目都得对VS2008当且仅进行一次如下设置:

     a.  打开VS2008—>“工具”-->“选项”-->“项目和解决方案”-->“VC++目录”à右边的“显示以下内容的目录”中 选“包含文件”,在下面新建“D:/Program Files/MATLAB71/extern/include”。

     b.  选“库文件”,在下面新建“D:/Program Files/MATLAB71/extern/lib/win32/microsoft”。

     注:D:/Program Files/MATLAB71/为MATLAB的安装目录。

2.  新建Win32控制台程序。

3.  配置项目属性(每一个项目都要配置),引入相应的MATLAB引擎链接库。右击“项目名”选“属性”-->“配置属 性”-->“连接器”-->“输入”的附加项中添加:“libmx.h libmat.h libeng.h”,各个文件之间以空格隔开。

4.  新建源文件。此例子的源文件名为:“EngineMain.cpp”,在里面添加代码。

     a.  首先要添加#include <engine.h>头文件。

     b.  然后定义引擎指针ep,mxArray变量指针。

     c.  打开MATLAB引擎:ep=engOpen(NULL);

     d.  创建矩阵变量A,B,并将矩阵变量A写入到MATLAB引擎空间:engPutVariable().

     e.  执行引擎命令:engEvalString().

     f.   从引擎空间中读取执行结果:engGetVariable().

     g.  释放矩阵空间:mxDestroyArray(A);

     h.  关闭MATLAB引擎:engClose(ep);

5.  运行程序便可。

 

*******在做完以上工作后,编译可以通过,但是要执行的话,还会报“计算机中丢失libmx.dll。”的错误。*******

       原因:matlab2010a版本的环境变量出现了问题。libmx.dll是存在于D:/Program Files/MATLAB/R2010a/bin/win32文件夹中,而在Win7系统变量里Matlab在安装的时候时只写入了路径D:/Program Files/MATLAB/R2010a/bin,故系统不会自动到其子文件中找dll,从而报错说找不到文件。

       解决办法:由于旧版本的Matlab中没有将这些dll分离放到win32子文件夹中。所以只要在系统变量中包含路径D:/Program Files/MATLAB/R2010a/bin/win32即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值