让心去旅行!

浅析VC与matlab接口编程(1)(转载)

上一篇 / 下一篇  2006-09-14 15:21:32 / 天气: 晴朗 / 心情: 高兴

Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便 得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。
%Yv/_@(^Hc108110  Matcom安装安装Matcom前要已求安装VC6.0。在安装过程中出现选择编译器对话框,选择“是”(图一)。出现选择是否安装Matlab时,选“否”。其他选项采用默认设置。Matcom可以独立于Matlab运行,但需要外部的C++编译器,指定Matlab的位置是为了让编译文件中需要的一些系统函数找到路径用的。
$["Mv qF Ey9y108110
8Pxws"d(@7o108110               图一
-Y.DHE&K@108110
D_LvQd2El T[B108110  安装完成后,启动界面MIDEVA(图二)。MIDEVA集成开发环境包括命令行窗口、变量列表窗口、命令列表窗口和编译链接信息窗口等几部分,并有详细的帮助文档。
z0F|u![h108110
d2? w2E"y108110图二
DiZ1S"q3D H108110Matcom命令输入方法与Matlab相同。如果安装在中文版操作系统时,输入命令前加一空格。(如图三)。 EDA中国门户网站)y7wZPKt qs5xSW

/d%o @9x+P-XX108110                  图三EDA中国门户网站N2j`W4_o @6z-z6C
EDA中国门户网站0}X1?;cK,BP |
下面详细介绍如何将m文件编译后放入VC中。EDA中国门户网站,HU` e'P(qPh"S
1、启动MIDEVA ,File->New,新建如下Test1.m文件:
x=1:0.1:10; y=sin(x); plot(x,y); 

将文件保存(如图四)。
7OJ!Y/m(lv108110EDA中国门户网站m6kU-Z(K%C[`
EDA中国门户网站zOhF z'}6Z"?
    图四EDA中国门户网站?3Hi.l8V?
EDA中国门户网站 A!N7^cTVr
m文件保存的默认位置为:matcom安装目录\matcom45,生成的C++文件保存的默认位置为:matcom安装目录\matcom45\Debug\,本例matcom安装目录为C盘 即 C:\matcom45\Debug\,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。EDA中国门户网站7M[z]y$i
EDA中国门户网站P A$k S+]f4e2Jbzg
2、在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。EDA中国门户网站nBJ!BVrb
在面板上添加一个ID为IDC_BUTTON1按扭。
-n T8R-uQ_/D W108110EDA中国门户网站Wm\5R0UA'Ir
3、将C:\matcom45\Debug目录下的Test1.cpp文件的内容拷贝到
Z}4r sj/\108110void CExamleDlg::OnButton1()下,(如图五)。 EDA中国门户网站Y|*S [3Mt
EDA中国门户网站c4ED#|%rp8|*VB
EDA中国门户网站 y9GI&A"`Y.E
             图五 EDA中国门户网站4Q,Z+xi@*v

k0~.h'\'` d5]D1081104、将C:\matcom45\lib\下的matlib.h 和v4501v文件和C:\matcom45\debug下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程->添加工程->Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件(如图六)。EDA中国门户网站'?J"o)j/?7B c,_ P;H(y
EDA中国门户网站&q`]j4a,w+`:[-g
EDA中国门户网站A*V1X&Hhc3sO
          图六
gy\U5M-kSY108110EDA中国门户网站Yx%W h7p"I
5、在ExamleDlg.cpp中加入如下代码:

#include "matlib.h"
#include "Test1.h"

6、在void CExamleDlg::OnButton1()中分别添加一个初始化类库调用函数”initM(MATCOM_VERSION)”和一个结束类库调用函数”exitM()”(如图七)。
@P;?-j0I\J'MD108110EDA中国门户网站1na3u)@9W

w5d*[%Dx P(P108110             图七
4SMvq}lK x108110
vTQ%]&Fd9m`:j108110运行程序,点击画图按扭(如图八)。
x(L[|%bk3p.cg9~108110 
|O \~:Jh108110EDA中国门户网站vS$~;\/P^
                             图八
4K a#z-XfO108110EDA中国门户网站alD%@X+VII2`%p
  程序的release版本需要ago4501.dll、v4501v.dll、v4501.lib三个文件的支持。


TAG:

Jiang_online 引用 删除 surpass3000   /   2006-09-14 15:26:11
一直感觉Matlab速度不行,C就好多了,混合编程一直想搞,no time ,今天发现一篇这,好像挺简单的,拿来分享
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 12708
  • 日志数: 106
  • 图片数: 9
  • 文件数: 4
  • 建立时间: 2006-05-07
  • 更新时间: 2008-06-17

RSS订阅

Open Toolbar