打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vc调用matlab (我的环境是win7+vc6.0+matlab2010a)

 网上看了好多相关的资料,这个对我用处最大。win7与matlab的兼容性影响了实验的执行!!原文是vs2008和matlab混合编程,同样适用于vc6.0和matlab混合编程。

 

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

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

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

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

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

2. 新建Win32控制台程序。

3.配置项目属性(每一个项目都要配置),引入相应的MATLAB引擎链接库。右击“项目名”选“属性”-->“配置属性”-->“连接器”-->“输入”的附加项中添加:“libmx.hlibmat.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:/ProgramFiles/MATLAB/R2010a/bin/win32文件夹中,而在Win7系统变量里Matlab在安装的时候时只写入了路径D:/ProgramFiles/MATLAB/R2010a/bin,故系统不会自动到其子文件中找dll,从而报错说找不到文件。

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

***************************************************

经过测试,顺利通过!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
VC++如何利用Matlab2014b的图形引擎进行绘图
VC++和Matlab(转)
MATLAB R2016b 安装教程
Matlab混合编程之NET组件(C#篇)
OpenSSL简介及在Windows系统上的编译步骤
win7和vista拨号上网与Matlab冲突
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服