基于MATLAB进行混合编程的接口技术实现.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:307KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于MATLAB进行混合编程的接口技术实现.pdf

基于MATLAB进行混合编程的接口技术实现.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据E舢嗍PHf,基于MATLAB进行混合编程的接口技术实现(En“c1^mdⅣ。m“u删r蛳,(肇删g厶260r础。叫∥(洫姗44d葛昭攀,吴兵MATLAB埘"z5£斜。,Sf曲且ka加nMATIJAB接口技术概述3客户/服务器(cIient/server)连接方式摘要:讨论了MATLAB与其它应用软件进行接口的三种方法,并着重讲逮前两种方法:客户/服务器接口方式,和Studlo提供的Add-ln工具做了舟绍.美毽词:MATLAB编译器;客户/服务器;动态连接库;Add—inKeyProgrammingSoftware—interface1引盲在处理矩阵运算及常规数学变换方面有着明显的优势,往往和工程计算的数据分析处理需要此外,MATLAB语言简洁紧凑.使用方便灵活,编程效率极高,数据可视化功能十分强大.正因为如此.MATLAB可以让使用者从繁复艰辛的计算MATLAB本身也具有一些不足之处:其一,图形界面设计功它们各自的优点实现混合编程就显得尤为必要.以vc、vB等程序设计语言设计程序框架,以编译的程序作MATIAB引擎在后台与MATLAB服务器建立连接,实现动(2)使用MATLAB编译器.此种方法正是为了解决第一种方法的局限性而出现的,在MATLAB5.o以上的版本中都带有MATLAB编译器(MATLABcomplⅢ).它能将m文件转换为c或c++原代码.这些原代码与MATLAB的其它一些应用模块(例如MATLAB数学库)结合,经c/c+或算法封装于其中的动态连接库(DLL).总的来说,MATIIAB的接口方式主要有以下三种:(1)采用客户/服务器(client/server)的计算模式,通过第24卷第12期小型微型计算机系统2003年12月MINI—MlcR0SYsTEMs(华东师范大学城市与环境教育部开放实验室,上海200062)利用MATLAB编译嚣进行编译连接,最后对Mathw。rks套司专门为Vlsu且1中围分类号:TP312文献标识码:A文章编号:1000。1220(2003)12—221TechniqueofIntegratingwithotherZhao—pan.WU0,c^E肌,5hHg^山200062,c^柳d)MATALB,andc11ent/serverM+flleIntoC/C++proJect.Finally.weMathWorks.Inc.,whichwords:MATLABcompIie‘;client/serve’}DLL}add—lnMATLAB是Mathwork公司推出的一种面向工程和科学运算的交互式计算软件.由于MATLAB在数据方面.尤其成为工程人员的首选.而MATLAB功能强劲的工具箱则是其另一重大特色,这些工具箱可以最大限度地满足科学研究中解放出来,把注意力更多的投向对问题的思考和把握上.但能相对于vc、vB等来说较弱;其二,让许多软件开发者头疼的是,在MATLAB上开发的程序不能脱离MATLAB的运行环境.因此.找到MATLAB与其它软件的接口,充分利用wjndows的Activex通道和MATLAB进行结台具体而言,为前端客户机.通过MATLAB的ActIvex自动化服务或态通信.当然从这里我们就可以看出,这种方法需要MAT—LAB在后台适时运行,离不开MATLAB运行环境+编译器的编译连接就可生成MEX文件及独立的应用程序(3)matht001s公司利用Matconl技术编写的M1deva工具软件,它可用c++绵译器将m文件转换为DLI.供VB、Delphi等调用本文主要就前两种方法进行介绍,后一种方法可参见[5].M^TLAB的ActIve自动化服务收稿日期:2002—0l一12基金项目:国家自然科学基金(401000301)资助I上海市重点学科项目赍助.作者简介:葛昭攀,硕士研究生·主要从事经济数学模型和决策支持系统研究V01.24No.12Dec.20039一05GEAbstran:Inthl5nrstanalyzedtheadvant89esandd18advant89esthenweproducedtbreemethodsaboutInterfacebetweenprogrammingso“ware.Butonlyfocusedtwoformer,1hatlsusi”gComplieraddducedbymakemucheasierCompilerfromVisualC++IDE.23.1Bl“gpaper,wewaytoIntroitSuiteonlncanuse万方数据⋯py(‘char*)mxGetPr(b),(cb删)matnxB,5Ⅷeofch㈣me[mxMAXNAM];b⋯erea怔Doub【eMatnx(1,5.mxREAL);“