您的位置:首页 > 编程语言 > MATLAB

VB与MATLAB接口实现方法

2013-01-28 11:32 218 查看
VB与MATLAB接口实现方法

MATLAB提供了与G、C++、Fortran等程序的接口,并 没有提供直接和VB的接口。可以利用一些新的技术或借 助第三方插件来解决VB和MATLAB的接口问题。下面列出 目前一些常用的方^^

1.1借助ActiveX技术

ActiveX是微软公司提出的一组使用COM (Component: Object Model,部件对象模型)使得软件部件在网络环境 中进行交互的技术集,它与具体的编程语言无关。 ActiveX的特点就是使不同的软件对象可以跨进程、跨平 台并能在网络上进行交互。

MATLAB支持ActiveX技术以实现自动化服务> 功能主 要包括在随TLAB工作空闻执行MATLAB命令s以及直接从. 工作空间存取矩阵等》

借助MATLAB实现ActiveX服务支持的特点,使VB在不 了解应用程序实际的情况下控制自动化对象。具体方法 为在_VB.中通过铜用1ATLAB.弓|擎(Engine),利用ActiveX通 道与Execute方法直接使用MATLAB的函数库和图形库,实现两者的馄合编程。这种方法操作起来比较简单,但是最终程序不能脱 离MATLAB的环境运行。

 

 1.2借助DDE技术

      DDE (Dynamic Ddta Exchange,动态薮_据交换)技术 是微软公司提出的、基于Windows的消息机制。两个 Windows应用程序通过相互之间传递消息进行"对话久从 而完成数据的请求、应答、传输,这两个程序分别被称 为"Server〃和〃Client"。&6r«?r是数据的提供者, Client是数据的请求和接受者。通过DDE方式建立的数据 连接通道是双向的,"Client"不但能读取"Server"中的 数据,还能对其进行修改。客户程序启动一个DDE对话, 它必须识别两种服务器定义的参数:要对话的服务名和
对话的主题名。当一个服务器程序获得客户程序一个会 话的要求,它晌应这个要求,并建立一个DDE会话。服务 器和主题名唯一地定义一个会话。在一个DDE会话中,客 户和服务器程序通过项目名交换数裾,项目名是数据的 一个引用。

MATLAB#S禾中主题,分另Ll 为SVs tem.和Engine。 87£^舰主题允许用户浏览服务器-供的主题列表、 System主题项目和服务器端所支持的格式。Engine主题 让用户通过提供一个命令来运行MATLAB、导入和导出数 据。因此可'以将MATLAB作为服务器端使用,将VB作为客 户端使用,从而实现两者的混合编程。

DDE的功H没有ActiveX強’而X也不能脱离MATLAB 环境单独运行,但是它的编码方式比较简单,可用于实 现一些简单的功能.

 

 1.3 使用MatrixVB

      Batr ixVB是由®MathTools公司开发的专门用于加強, VB的矩阵运算与图形绘制功能的一个COM組件。该组件提 供了几百个函薮> 包括基本的数学运算和功能强大的信 号处理、线性代数、串运算及图形图像处理功能等。

MatrixVB是可以脱离MATLAB环境运行的独立的软件 产品。安装MatrixVB后就可以在VB中引用它,从而解决 VBigMATLiffl的接口问题。

使用MatrixVB执行效率较低,不能应用于一些实时 性要求较高的场合。

1.4利用COM组件技术

     COM是一种通用的对象接口。MATLAB较高的版本推 扭了COM BuiltJer编译器,它可以把MATLAB下的程序傲 成COM组件,这些组件作为独立的COM对象> 可以直接被 VB调用。

1.5动态链接库DLL方法

         MATLAB下的程序文件(.M文件)可以转换为能被VB调 用的动态链接库(.DLL文件)。具体实现方法有以下几种:

(1) 用MATLAB的MCC命令直接转换;

(2) 借助第三方插件MATC0M转换;

⑶借助Visual C++与MIUB.的接口’在!:雜境下转换。 DLL文件在程序运行时被链接到过程中来,而且能被 多个过程同时调用,更新简单。这种方法使用灵活,运 厅速度非常快,很好地解决了两者的接口问题,但是掌 握起来有一定的难度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: