- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
科 技 论 坛
中国科技信息2005年第22期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Dec.2005
VB调用Matlab制作的COM 组件实现二者混合编程
张赛民1 陈灵君2
(1.中南大学信息物理工程学院 410083; 2.中石化中南分公司研究院 410007
摘 要:Microsft Visual Basic在编程可视化、开发友好界面方面, 显得十分方便,而MATLAB 提供很多数学库可以实现科学技术计算。充分利用MATLAB 强大的运算及显示功能和VB 开发界面友好的特点,将二者有机结合,可以开发出复杂的、界面友好的人机交互处理软件。同时,能大大加快软件开发的进度,缩短源代码,提高代码质量及软件稳定性。为了开发的VB 程序脱离MATLAB 环境,利用MATLAB 制作COM 控件供VB 调用是实现此功能的有效方法。熟练掌握这一技术,将使编程工作变得轻重自如。关键词:VB ;MATLAB ;混合编程;COM 组件
1,问题的提出
Visual Basic编程语言避开了C++编程过分繁琐和抽象的缺点,是一种十分强大和有生命力的Windows编程语言,它易上手,界面容易设计,但在数值计算方面其能力欠佳。
与VB相比,MATLAB可以提供与矩阵有关的强大的数据处理和图形显示功能,是工程技术人员实现数值计算和图形显示的有效的开发平台。但MATLAB界面功能弱,给友好界面的开发应用带来不便。
为提高工程计算软件的开发效率和质量,可把VB语言和MATLAB相结合,充分利用MATLAB的运算功能和VB开发界面方便的特点进行混合编程。其实现的过程有多种,如利用ActiveX 技术调用Matlab,利用动态连接库调用Matlab所写的程序[1],这里作者采用Matlab制作的COM控件后,VB调用控件实现二者混合编程。这样对COM控件系统注册后,编制的VB应用程序可以脱离MATLAB环境,成为一有机整体。
2,MATLAB制作COM控件
2.1 制作COM控件简单步骤
MATLAB COM Builder是MABLAB编译器的扩展,提供了工程向导使用户可很容易创建自己的COM控件,并能脱离MATLAB环境。
下面简单介绍使用MATLAB COM Builder创建COM组件的步骤。
在MABLAB系统中的命令行输入comtool指令启动MATLAB COM Builder。在菜单项中选择“File -> New Project”,调出窗口进行参数设置,建立工程。
通过在“Class name”下的文本框键入用户想要建立的类名称,然后点击“Add>>”建立一新类,后选择相应的工程目录和组件版本号。
值得注意的是,在编译COM组件时,需要机器安装有C或C++编译器。假如组件的类中需要使用MATLAB图形库则还需将“Use HandleGraphics library”选项选中。
接着选定的类中通过菜单“Project->AddFile…”向工程中加入M或MEX文件,这些文件可以调用MATLAB的编辑器进行编辑。
文件加入并编辑好后就可以编译组件,MATLAB COM Builder中右窗口左下角的“Build”完成编译后,组件在计算机中自动注册。如果要将此组件在另一计算机使用,则可用菜单中“Component->Package Component”将此控件打包。在另一计算机上运行打包后的文件完成对COM组件的注册。
从创建组件到打包发布的过程相当简单,体现出MATLAB COM Builder作为自动化工具的优势。
2.2 组件的类方法、属性和事件设置
一个组件里可以有多个类,各个类又有其方法、属性及事件。假设建立的工程下的一个类拥有四个文件。comfft.m为对数据的傅立叶频谱计算,PlotData.m为绘图程序文件,interate.m为调用组件里事件的文件,progess.m为事件处理文件。
%comfft.m
function [fftdata,freq,powerspect] = Comfft()
global Inputdata;global Interval;
fftdataT =fft(Inputdata);len=length(fftdataT);
freqT=(0: len -1)/( len *Interval);powerspectT=abs(fftdataT)/(sqrt(len));fftdata=fftdataT(1: len/2);freq=freqT(1: len/2);
powerspect= powerspectT(1: len/2);%PlotData.m
function [ ]=plotdata()global Inputdata;glo
文档评论(0)