matlab和vc混合编程之matcom方式
2009-12-18 10:22
375 查看
-------------------------------------------------------------
转团长博文:http://hi.baidu.com/%C7%A7%D4%D8%C6%DA%C5%CE/blog/item/e12e6cfb4cf96e1c6d22eb35.html
-------------------------------------------------------------
Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便 得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。
Matcom安装安装Matcom前要已求安装VC6.0。在安装过程中出现选择编译器对话框,选择“是”(图一)。出现选择是否安装Matlab时,选“否”。其他选项采用默认设置。Matcom可以独立于Matlab运行,但需要外部的C++编译器,指定Matlab的位置是为了让编译文件中需要的一些系统函数找到路径用的。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091217/1.gif)
图一
安装完成后,启动界面MIDEVA(图二)。MIDEVA集成开发环境包括命令行窗口、变量列表窗口、命令列表窗口和编译链接信息窗口等几部分,并有详细的帮助文档。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/2.gif)
图二
Matcom命令输入方法与Matlab相同。如果安装在中文版操作系统时,输入命令前加一空格。(如图三)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/3.gif)
图三
下面详细介绍如何将m文件编译后放入VC中。
1、启动MIDEVA ,File->New,新建如下Test1.m文件:
x=1:0.1:10; y=sin(x); plot(x,y);
将文件保存(如图四)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/4.gif)
图四
m文件保存的默认位置为:matcom安装目录matcom45,生成的C++文件保存的默认位置为:matcom安装目录matcom45Debug,本例matcom安装目录为C盘 即 C:matcom45Debug,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。
2、在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。
在面板上添加一个ID为IDC_BUTTON1按扭。
3、将C:matcom45Debug目录下的Test1.cpp文件的内容拷贝到
void CExamleDlg::OnButton1()下,(如图五)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/5.gif)
图五
4、将C:matcom45lib下的matlib.h 和v4501v文件和C:matcom45debug下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程->添加工程->Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件(如图六)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/6.gif)
图六
5、在ExamleDlg.cpp中加入如下代码:
#include "matlib.h"
#include "Test1.h"
6、在void CExamleDlg::OnButton1()中分别添加一个初始化类库调用函数”initM(MATCOM_VERSION)”和一个结束类库调用函数”exitM()”(如图七)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/7.gif)
图七
运行程序,点击画图按扭(如图八)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/8.gif)
图八
程序的release版本需要ago4501.dll、v4501v.dll、v4501.lib三个文件的支持。以上只是介绍了VC和Matcom接口编程的一个简单例子,功能并不完善,也远远达不到一个软件所要求的水平,但只要熟悉了VC和Matcom接口编程的基本原理和方法,相信大家一定能够编出优秀的软件。
转团长博文:http://hi.baidu.com/%C7%A7%D4%D8%C6%DA%C5%CE/blog/item/e12e6cfb4cf96e1c6d22eb35.html
-------------------------------------------------------------
Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便 得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。
Matcom安装安装Matcom前要已求安装VC6.0。在安装过程中出现选择编译器对话框,选择“是”(图一)。出现选择是否安装Matlab时,选“否”。其他选项采用默认设置。Matcom可以独立于Matlab运行,但需要外部的C++编译器,指定Matlab的位置是为了让编译文件中需要的一些系统函数找到路径用的。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091217/1.gif)
图一
安装完成后,启动界面MIDEVA(图二)。MIDEVA集成开发环境包括命令行窗口、变量列表窗口、命令列表窗口和编译链接信息窗口等几部分,并有详细的帮助文档。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/2.gif)
图二
Matcom命令输入方法与Matlab相同。如果安装在中文版操作系统时,输入命令前加一空格。(如图三)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/3.gif)
图三
下面详细介绍如何将m文件编译后放入VC中。
1、启动MIDEVA ,File->New,新建如下Test1.m文件:
x=1:0.1:10; y=sin(x); plot(x,y);
将文件保存(如图四)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/4.gif)
图四
m文件保存的默认位置为:matcom安装目录matcom45,生成的C++文件保存的默认位置为:matcom安装目录matcom45Debug,本例matcom安装目录为C盘 即 C:matcom45Debug,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。
2、在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。
在面板上添加一个ID为IDC_BUTTON1按扭。
3、将C:matcom45Debug目录下的Test1.cpp文件的内容拷贝到
void CExamleDlg::OnButton1()下,(如图五)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/5.gif)
图五
4、将C:matcom45lib下的matlib.h 和v4501v文件和C:matcom45debug下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程->添加工程->Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件(如图六)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/6.gif)
图六
5、在ExamleDlg.cpp中加入如下代码:
#include "matlib.h"
#include "Test1.h"
6、在void CExamleDlg::OnButton1()中分别添加一个初始化类库调用函数”initM(MATCOM_VERSION)”和一个结束类库调用函数”exitM()”(如图七)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/7.gif)
图七
运行程序,点击画图按扭(如图八)。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/kyszp123/EntryImages/20091218/8.gif)
图八
程序的release版本需要ago4501.dll、v4501v.dll、v4501.lib三个文件的支持。以上只是介绍了VC和Matcom接口编程的一个简单例子,功能并不完善,也远远达不到一个软件所要求的水平,但只要熟悉了VC和Matcom接口编程的基本原理和方法,相信大家一定能够编出优秀的软件。
相关文章推荐
- VC和Matlab混合编程之调用Engine引擎方式<一>
- VC++与Matlab混合编程之引擎操作详解(3)引擎API详解
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- VC++与Matlab混合编程之一:调用Matlab引擎
- VC++与Matlab混合编程之引擎操作详解(4)数据类型mxArray的操作
- VC++与Matlab混合编程之二:调用Matlab中M函数转换成DLL文件的形式
- VC++与Matlab混合编程之引擎操作详解(5)数据类型mxArray的操作
- Matlab2012生成DLL文件与VS2005(VC)混合编程解决方法(折腾两天的成果)
- VC与Matlab混合编程之调用动态链接库dll<二>
- VC++与Matlab混合编程之引擎操作详解(6)数据类型mxArray的操作
- Matlab混合编程之引擎方式(C#篇)
- vc与matcom混合编程实例
- VC++与Matlab混合编程之引擎操作详解
- VC++与Matlab混合编程之引擎操作详解
- VC+matlab通过Com接口实现混合编程
- vc&matlab混合编程方法简介
- VC++与Matlab混合编程之引擎操作详解
- Matlab与VC混合MEX编程之关于mexFunction篇
- VC++与Matlab混合编程之引擎操作详解
- VC与Matlab接口编程之Matcom安装配置