vc中可以调用matlab吗,vc调用matlab (我的环境是win7+vc6.0+matlab2010a)

本文介绍在Windows 7系统中使用MATLAB引擎实现VC与MATLAB混合编程的具体步骤,包括VS2008环境配置、项目属性设置等,并解决了因MATLAB版本兼容性导致的DLL缺失问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

使用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

头文件。

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即可。

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

经过测试,顺利通过!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值