- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB与MATLAB接口技术分析与应用
VB与MATLAB接口技术分析与应用
摘 要:本文详细介绍了VB与Matlab两者间的接口技术,并应用Axtibvex技术实现了在VB中调用和操作Matlab。通过两者的混合编程实现了VB的可视化界面与Matlab强大的数值分析和图形图像处理能力的结合。
关键词:ActiveX 无缝链接 DDE MatrixVB
中图分类号:TP391.9 文献标识码:A 文章编号:1672-3791(2011)05(b)-0014-01
Visual Basic是Microsoft公司推出的一种可视化,面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学,效率高,功能强大,可与Windows的专用开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础,避开了C++编程过分繁琐和抽象的缺点。但是VB在运行复杂运算和图形图像处理时,计算繁琐,运算速度慢,使其在一些专业领域方面不能得到充分利用[3]。
Matlab语言是MathWorks公司推出的计算机软件,它起源于矩阵运算,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一。Matlab语言具有语法结构简单,数值计算高效,图形图像功能完备等特点,因此Matlab语言已成为科学计算,系统仿真,信号和图像处理的主流软件[1]。
工业生产中经常遇到复杂的数据信息处理问题,需要大运算量的矩阵计算及对分析结果进行实时、直观的图形图像化显示。Matlab是集数值分析、矩阵运算、信号处理和图形图像显示于一体的高性能数学软件,将其强大的计算功能与VB在可视化用户界面开发方面的优势结合起来,实现应用系统的无缝链接,对于有效缩短开发周期、优化系统性能是十分有意义的。
1 分析VB与MATLA接口技术
1.1 DDE技术
动态数据交换DDE(Dynamic Data Exchange)是允许Windows各应用程序间交换数据的通信机制。应用程序间实现彼此通信应先建立一个DDE对话,请求建立对话的应用程序成为客户(Client),而响应对话请求的应用程序成为服务器(Server)。
在VB中调用Matlab时,则VB为客户,Matlab为服务器,客户应用程序(VB)是通过DDE函数与MatlabDDE服务器模块进行通信,客户DDE函数可以由客户应用程序提供,也可由Matlab引擎库提供。当客户应用程序创建DDE对话时,必须识别被叫服务器的两个DDE参数:服务器名(Service name),即被请求对话的应用程序名;话题(Topic),即对话主题。DDE的对话内容由一组预先规定的参数名称构成。
1.2 ActiveX技术
ActiveX技术是一种非常有价值且有前途的技术,借助ActiveX,开发商和终端用户就能把来自不同开发商ActiveX组件无缝地集成在自己的应用程序当中从而完成特定的目的,不仅能缩短开发时间,而且有效地低水平的重复开发。
Matlab提供了ActiveX自动化服务支持,在VB中通过ActiveX自动化接口可将Matlab作为VB语言的一个ActiveX部件来调用。Mtalab ActiveX自动化服务器的功能包括:在Matlab空间中执行指令;与Matlab空间交换数据。下面就Matlab ActiveX所提供的3种方法作如下说明。
BSTR Execute([in] BSTR Command)。
BSTR表示宽字符串类型,它与VB存储字符串所采用的数据格式相同。该方法接收字符串命令并在Matlab中执行,将结果以字符串形式返回。
void GetFullMatrix([in] BSTR Name,[in] BSTR Workspace,[in, out] SAFEARRAY(double)* pr,[in, out] SAFEARRAY(double)* pi);
该方法从指定的工作空间检索一个完整的一维或二维的实型或虚mxArray,其实部和虚部被分别存放到两个单独的Double型数组中。
void PutFullMatrix([in] BSTR Name,[in] BSTR Workspace,[in] SAFEARRAY(double) pr,[in] SAFEARRAY(double) pi);
该方法将一个mxArray放入指定的工作空间。各参数的含义及调用方法与GetFullMatrix方法类似。
ActiveX技术的应用有些像DDE链接,但比DDE链接更强大。DDE Matlab服务器能够工作的前提条件是Matlab本身已经开启,否则,DDE对话无法建立。这
文档评论(0)