matlab通用程序,基于Matcom4_5的VC_与Matlab通用接口程序编制

收稿日期:2003-03-20。刘廷瑞,硕士生,主研领域:光学测量技术。

基于Matcom415的VC ++与Matlab 通用接口程序编制

刘廷瑞 于瀛洁 陈明仪

(上海大学精密机械系 上海200072)

摘 要 本文着重探讨基于Matcom4.5的VC ++与Matlab 接口程序的实现问题,该问题虽然已有一些相关文献资料,但都必须插

入不同的相关连接代码。本文实现了统一的规范,使VC ++与Matlab 接口程序的编制成为一种机械的通用程序,不需要嵌入另外的代码,即使不懂VC ++也能实现程序的编制。关键词 Matlab VC ++610 Matcom4.5

GENERAL INTERFACE DEVICE BETWEEN VC ++AN D MAT LAB BASE D ON MATCOM4.5

Liu T ingrui Y u Y ingjie Chen Mingyi

(Department o f Precision Mechanics ,Shanghai University ,Shanghai 200072)

Abstract The paper emphasizes the realization of the interface program between Matlab andVC ++6.0based on Matcom4.5,although the issue has already been discussed in past literature ,it must be inserted correlation codes respectively.The paper realizes uniform standardization ,making in 2terface program be a general format ,it doesn πt need additional codes for even ignorance of VC ++1K eyw ords Matlab VC ++6.0 Matchom4.5

1 前 言

VC ++610与Matlab 接口程序的实现有多种方法。可以利

用Matlab 引擎,Matlab 引擎采用客户和服务器计算方式,在运用中,VC 的C ++语言的程序作为前端客户机,它向Matlab 引擎传递命令和数据信息,并从Matlab 引擎接收数据信息;它通过函数:engOpen ,engG etArray ,engPutArray ,engEvaS tring ,engOutputBu ffer ,

engClose 与客户机进行交互,但识别和掌握这一交互过程也是一

个复杂的过程;还可以利用Matlab 自身的编译器调用工具箱中的函数,Matlab 的编译器可将Matlab 的M 文件转换为C ++的源代码,以产生完全脱离Matlab 运行环境的独立的运用程序,过程实现为“mex -setup ,mbuild -setup ,mcc -t -h -L CPP 文件名”格式,但编译器如用来建立独立的运用程序,不能调用Matlab 工具箱中的函数,且连接C ++代码的过程也是一个复杂的过程;本文采用对Matcom4.5编译成的C ++代码规范化,不需要有特别的技术,实现了接口程序的“傻瓜”程式。

2 利用Matcom4.5编译接口程序的步骤

211预备工作

在Matcom4.5的安装过程中若出现“某一路径下缺少

XXX 1m 文件”的提示,则应手工建立该路径及空白的XXX 1m 文

件,然后重新运行安装程序。另外将需要转化的matlab 文件准备就绪,本文为LFFT 1m 、surfit.m ,其中surfit.m 为子程序,可以有多个子程序,一定要使LFFT 1m 预先在matlab 下运行通过,同时一定要使LFFT 1m 文件内容的第一行为function LFFT ()。

212运行Matcom4.5后打开LFFT 1m

点击file ->compile to dll ,在右下角的窗口内察看有无错误发生,如有则修改相应的matlab 程序重新执行,如没有错误则完成CPP 转化,转化成的代码在Matcom \Debug 内。如果想马上验证转化后代码的执行情况,则继续点击file ->compile to exe ,

结果产生LFFT.exe 文件,可直接运行进行验证。

213将CPP 代码插入VC ++框架

1)打开Matcom \lib 文件夹,拷贝matlib.h 、v4501v.lib 两个

文件到Matcom \debug 目录。

2)打开系统文件搜索向导,查找ag o4501.dll 和v4501v.dll 两个文件,并将其拷贝到Matcom \debug 目录。

3)打开VC ++610,建立文档界面,新建“FFT ”菜单,并映射菜单打开函数onFFT (),使该函数位于“view ”类,并拷贝Matcom \debug 下的所有内容到工程目录。

4)在VC 工程文件中,加入工程目录下所有待插入的“1h ”头文件及v4501.lib 库文件。

5)在view 类CPP 文件中包含所有加入工程的头文件的文

件名,并包含“#pragma hdrstop ”

(可从工程下的LFFT 1CPP 内复制),并在view 类内初始化init =false 。

6)在view 类的头文件下加入:

∥Im plementation ……

protected ;bool init ;

7)在onFFT ()函数的执行处加入固定格式:

if (!init ){begin

scope

initM (M ATCOM VERSION );

LFFT ();∥此处为可变处,随所要操作的matlab 文件变化;exitM ();init =true ;end

scope}init =false ;

8)在view 类的CPP 文件的末尾处(必须是末尾处,否则可第21卷第11期 计算机应用与软件

Vol 121,No 111

2004年11月 C om puter Applications and S oftware Nov 12004

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值