概述
在VC中调用MATLAB的,总结有以下几种方法:1、是调用Matlab引擎;2、是调用Matlab中M函数转化成的dll文件;3、调用Matlab中M函数转化成c语言的函数。
本节之讲解方法1,因为方法1最简单,只要配置好VC的相关设置就可以了。
下面是自己的实践过程:
一、设置VC相关属性。
(1)Visual C++6.0 编译环境的设置:通过菜单 Tools/ Options,打开Visual C++6.0设置属性页,进入 Directorie页面,在 Show Directories for下拉列表中选择Include Files,添加路径:<matlab>externinclude(在Matlab的安装路径下);再选择下拉列表中的 Library Files,添加路径:<matlab>extern libwin32Microsoft(在Matlab的安装路径下,但是在我查看资料的时候看到很多是<matlab>extern libwin32Microsoftmsvc60这个路径,但是我用的是MatlabR2009a,或许这里设置有点区别)。看资料说编译环境或许只需设置一次,但是我在设置的时候每次都要设置。
(2)添加库文件: 通过菜单 Projects|settings,进入 Link 页面,在 Object/Library Modules 框中,添加库文件名:libmx.lib 、libmat.lib 、libeng.lib。每个新的工程文件都要单独添加库文件。
二、在VC中通过MATLAB引擎调用Matlab函数命令:
现在以画一个正弦曲线的图为例。
1、 新建一个MFC程序,命名Test,基于对话框。
2、在Testdlg.cpp中加入头文件:
#include "engine.h"
#include <stdlib.h>
3、添加botton Test,并添加点击命令,加入代码如下:
void CTestDlg::OnTest()
{
// TODO: Add your control notification handler code here
Engine *ep;
if (!(ep = engOpen(NULL))) //打开Matlab引擎
{
MessageBox ("Can't start MATLAB engine", MB_OK);
exit(-1);
}
engSetVisible(ep, 0);engEvalString(ep,"x=0:0.001:2*pi;");
engEvalString(ep,"y=sin(x);");
engEvalString(ep,"plot(x,y)");//会显示出图
}
4、运行程序,单击Test按钮,运行结果如下图:
至此,利用VC调用Matlab引擎结束,可以运行Matlab中的各种函数,作图等。此种方法的特点是,非常简单和方便,要求运行程序的电脑必须装有Matlab软件,因此也具有不能脱离Matlab环境的弱点。
备注:此次测试是基于Visual C++6.0和Matlab R2009a的环境。
上面例子是VC和Matlab的混合编程的一个简单应用,在实际的数值计算,控制系统开发等工程应用中,可以很好的利用VC和Matlab的混合编程技术,从而简化应用程序的开发工作量。
下一篇文章将推出第二种方法:利用Matlab生成DLL文件,然后用VC调用DLL文件,此种方法是将Matlab写的函数封装在动态链接库里面,然后用VC调用动态链接库,优点是程序的运行可以脱离Matlab的环境独立运行。
最后
以上就是粗心芝麻为你收集整理的VC++与Matlab混合编程之一:调用Matlab引擎的全部内容,希望文章能够帮你解决VC++与Matlab混合编程之一:调用Matlab引擎所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复