浅谈VB与MATLAB相结合的三种方法
- 格式:pdf
- 大小:351.26 KB
- 文档页数:4
摘要: 为充分发挥Matlab与VB各自的优势,将二者结合起来进行工程应用软件的开发。
本文介绍了五种VB与MATLAB混合编程接口的方法,并对各方法性能的优劣进行了比较和评价。
关键词: Matlab;Visual Basic;ActiveX;DDE;MatrixVB;DLL;COM1引言Microsoft Visual Basic是由微软公司开发的可视化编程语言之一,由于它简单易学的特点,只要稍有编程基础就可以很快掌握,可视化的用户界面设计功能,把程序设计人员从繁琐复杂的界面设计中解脱出来。
因而很快就风靡全球,是一种十分强大和有生命力的Windows 编程语言。
但是我们知道VB语言也有它的缺点,即对于数值计算方面其能力欠佳。
Matlab是Matlab 擅长处理数值计算和系统模拟仿真,已被广泛应用于数字信号处理、电力系统仿真、图像处理、系统识别等各个领域。
但是Matlab也存在一些缺点: 1、和其他高级程序相比,程序的执行速度较慢,那是因为;2、对于底层硬件操作以及编程界面方面远远比不上VB、VC 等软件。
鉴于二者各自的优势,为了提高工程软件的开发效率和质量,将两种软件结合起来进行工程应用软件的开发便成了实际的需要。
本文主要讨论VB与Matlab混合编程的几种方法。
2Vb和Matlab接口实现方法介绍2.1借助ActiveX技术ActiveX是特点就是使不同的软件对象可以跨进程、跨平台并能在网络上进行交互。
Matlab ActiveX自动化服务的功能主要包括在(1) Execute (Command as String) 方法: 执行本方法将调用MATLAB执行一条Command 字符串决定的Matlab命令,同时返回一条字符串表示命令的执行情况。
任何能在MATLAB命令行窗口执行的命令均可以被包括在Command 字符串中。
(2) GetFullMatrix方法: 该方法用来将Matlab中的一个矩阵变量传送到VB 程序的一个一维数组或二维数组中。
邮局订阅号:82-946360元/年技术创新软件时空《PLC技术应用200例》您的论文得到两院院士关注MATLAB与VB混合编程技术研究ResearchofthemergingprogrammingtechnologyofVBandMATLAB(暨南大学计算机科学系)谭炎张凌燕Tan,YanZhang,Lingyan摘要:着重探讨了在VB应用程序中集成MATLAB实现程序优化的四种方法,即利用MatrixVB、调用DLL动态链接库、应用Active自动化技术和动态数据交换技术,并分析了集成过程中的关键问题及其基本步骤。
这种混合编程实现了VB的可视化界面与MATLAB强大的数值分析能力的结合。
关键词:VB;MATLAB;动态数据交换;ActiveX;动态链接库中图分类号:TP311文献标识码:AAbstract:ThispapermainlyfocusesondiscussingthetechniquesofthetechnologyoftheVBapplicationsintegratingwithMATLAB.Therefore,therelatedpivotalprotocolsandimplementationsteps,thesuperiorityandlimitationofeachmethodareoffered.Throughthismethod,wecanintegratethevisualinterfaceofVBandtheabilityofanalysisofMATLAB.Keywords:VB;MATLAB;DDE;ActiveX;DLL文章编号:1008-0570(2006)05-3-0247-031引言在工业生产和科研工作中,经常会遇到复杂数据信息的处理问题,往往需要大运算量的矩阵计算以及对分析结果进行实时、直观的图形化显示。
VB是Windows操作系统下优秀的可视化编程语言,在用户界面设计和快速开发等方面具有独特的优势。
关于matlab 与vb 混合编程技术研究关于matlab 与vb 混合编程技术研究1 引言在工业生产和科研工作中, 经常会遇到复杂数据信息的处理问题, 往往需要大运算量的矩阵计算以及对分析结果进行实时、直观的图形化显示。
VB 是Windows 操作系统下优秀的可视化编程语言, 在用户界面设计和快速开发等方面具有独特的优势。
从 5.0 版本开始, 可以编译链接生成本机代码的可执行文件, 能够脱离VB 的集成开发环境进行发布, 较好地封装了用户的算法, 有效地保护用户的源代码, 目前世界上有数以百万计的程序员把它当作首选的编程工具。
然而, VB 只提供了基本的数学函数库, 对于开发计算功能齐全的大型系统来说, 远远不够。
这种情况下, 如果使用基本函数库编写特殊功能的数学函数库, 不仅要求用户对算法有深入的理解, 而且费时, 还可能因为在设计时和运行时的错误处理机制的欠缺,难以保证每个函数功能的正确性。
MATLAB 是Math Work 公司于1984 年推出的数学工具软件, 其科学计算功能的强大和开放式的开发思想使其成为当今最为流行的、最为优秀的科技应用软件之一, 在数值分析、科学计算、算法开发、建模和仿真等方面具有独特的优势。
最新的 6.1 版本的工具箱(Toolbox)支持对通信系统、信号处理、图像处理、小波分析、鲁棒控制、系统辨别、非线性控制、模糊控制、神经网络、优化理论、样条、商用统计分析等30多个不同领域的内容的处理和分析。
但其用户界面的设计不如VB 方便, 解释执行的运行环境使其开发的程序不能离MATLAB 独立地进行发布, 目只有供 C 和Fortran语言使用的编程接口, 这对广大的VB 程序员来说是一个很大的不便。
如果能够在VB 中方便地调用MATLAB 的数学函数库, 增强科学计算的功能, 就可以发挥各自的优势, 缩短开发周期, 保证系统的健壮性, 开发出脱离VB 和MATLAB 的应用软件系统。
一、准备工作(1)matlab版本2012或以上(2)vb6.0二、适用条件matlab生成的无论是应用程序还是动态连接库或者是COM组件都需要MCR的支持,MCR因用户安装的Matlab版本不同分为32位和64位,所以为了能够将自己编译的M文件能够应用于其他的电脑上,首先要在目标电脑上安装自己电脑中MCR这个应用程序,它的存放位置为Matlab路径\ toolbox\compiler\deploy\win64三、Matlab与VB基于Com组件的实现过程(1)在Matlab中生成M文件的COM组件打开App菜单栏,找到Matlab Complier单击进入应用,会出现上图的界面,在Classes 中可以添加自己要用的类群,所谓的类群就是好比如果你想建立一个专门用于解决非线性方程的类,就可以建立个nonlinear equations solver,在类下可以添加用于解决非线性方程的各种M函数文件。
在这里我建立了fft类,在这个类中我添加了个myfft.M文件,这个M文件实际上使用了Matlab自带的离散傅立叶变换函数fft,这么做的目的是为了说明我们可以调用matlab已经建立好的各种算法,方便的在vb中调用。
添加好所需要的资源,点击build就OK了。
(2)注册生成的COM组件在Build Success后会在你选择生成Com组件的文件地址发现两个文件distrib和src,在distrib文件里你会发现你生成.dll文件,在电脑上注册它就可以在vb上调用。
至于怎么注册,自行脑补。
(3)在VB中调用Com组件在vb中的引用中通过浏览功能引用生成.dll文件,那么现在就可以使用了。
使用步骤:1.Dim xxx as new 工程名.类名xxx可以随意,工程名为你在Matlab中生成COM组件时自己定义的COM 组件名,类名为COM组件下你添加的类名2.通过xxx.函数名(nargout,y1,y2,y3,....,yn,x1,x2,...,xn)函数名为Matlab中定义在此类下的函数名,nargout为输出变量个数,y1,y2,...,yn 为输出变量,x1,x2,....,xn为输入变量。
VB与MATLAB混合编程探讨摘要:介绍了VB与MATLAB混合编程的方法,二者结合可以充分利用VB的方便快捷和MATLAB软件工具箱的强大功能。
关键词:VBVC++MATLABDLL编译MATLABAdd-inMATLAB是MathWorks公司开发的科学计算环境,具有强大的计算绘图能力,提供大量的函数库、工具箱,几乎涵盖了所有的工程计算领域,被誉为“演算纸”式的工程计算工具。
但是MATLAB语言是一种解释执行的脚本语言,运算速度较慢是一个比较突出的问题。
VisualBasic作为一门易学易用的编程语言,受到很多工程技术人员的青睐,其执行速度相对较快,界面友好。
因此实现VB与MATLAB混合编程,可以为科研工作和工程应用提供有力的技术支持。
1基本思路及实现方法MATLAB提供了与C++、Fortran的程序接口,并没有提供直接与VB的接口。
目前VB与MATLAB混合编程方面主要使用以下一些方法:(1)在VB中通过调用MATLAB的引擎(Engine)接口,使用Windows的OLE或ActiveX通道与MATLAB通信。
通过Object.Execute MATLAB语句在程序中直接使用MATLAB提供的函数库和图形库。
这种方法可以较快地编写出程序;但在调用引擎时,会在后台启动一个MATLAB进程,影响程序运行速度,占用内存。
(2)通过使用嵌入VB的矩阵函数库MatrixVB的方法。
MatrixVB是由原MathTools公司开发的第三方插件,利用与MATLAB相似的函数、语法嵌入到VB中,可以象使用VB的函数、命令一样使用MATLAB函数。
这种方法语法和函数使用比较简单,编程效率很高,几乎完全融入VB语言,特别对图形的处理非常方便,弥补了其他方法在图形处理上的弱点。
安装后,只需在打开的工程中添加MatrixVB库即可(在工程->引用对话框中选中MMatrix)。
但由于其仍然采用解释执行,执行效率较低,实时运算难以实现。
VisualStudio与Matlab实现混合编程环境:Win10vs2010Matlab2015⾥⾯有很多选做的内容,其中2、3必做1.Matlab环境设置:(选做)我没有做这步,因为打mbuild -setup指令不识别,缺少SDK,但是可以正常调⽤Matlab,这步是其他⽅式调⽤Matlab中的⼀步,使⽤Matlab⽣成DLL⽂件,VS引⽤要建⽴独⽴运⾏的C应⽤程序,系统中需要安装Matlab、Matlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。
Matlab编译器使⽤mbuild命令可以直接将C/C++源代码编译为独⽴运⾏程序,在这些源代码中可以使⽤Matlab提供的接⼝来调⽤Matlab数学库函数。
虽然⽣成的可执⾏程序可以脱离Matlab环境运⾏,但是它需要Matlab C/C++数学库⽂件或者图形库⽂件的⽀持才能运⾏。
但如果C/C++源代码完全是按传统C/C++源代码语法规则编写,没有包含Matlab数学库和图形库的调⽤,则不仅可以独⽴与Matlab环境,也不需要那两个库函数的⽀持。
在 Matlab 的Command Window 下输⼊命令。
mbuild – setup操作过程如下图:然后输⼊命令mex – setup以类似的⽅法配置编译器。
Matlab 的配置完成。
2.VS环境设置(必做)(1)设置Include 和Library ⽬录项⽬右键->属性->VC++⽬录->包含⽬录:添加<MATLAB>\R2010b\extern\include\win64 我的是:D:\RUANJIAN\Matlab\extern\include\win64<MATLAB>\R2010b\extern\include\ 我的是:D:\RUANJIAN\Matlab\extern\include项⽬右键->属性->VC++⽬录->库⽬录:添加<MATLAB>\R2010b\extern\lib\win32\microsoft 我的是:D:\RUANJIAN\Matlab\extern\lib\win64\microsoft<MATLAB>\R2010b\extern\lib\win64\microsoft截图::(2)设置⼯程⽬录: ( 我并没有设置)项⽬右键->属性->C/C++->常规->附件包含⽬录:添加<MATLAB>\R2010b\extern\include\win64<MATLAB>\R2010b\extern\include\项⽬右键->属性->链接器->常规:添加<MATLAB>\R2010b\extern\lib\win32\microsoft<MATLAB>\R2010b\extern\lib\win64\microsoft项⽬右键->属性->链接器->输⼊->附件依赖性:添加 (必做)libeng.liblibmat.liblibmex.liblibmx.lib 注:1.lib⽂件包含在<MATLAB>\R2010b\extern\lib\win64\microsoft,可根据需要增减 2.附件依赖性在VS2010前以空格隔开,在VS2010后使⽤;隔开。
VB与MATLAB混合编程研究与实现摘要:介绍了VB与MATLAB混合编程的5种方法,分别利用com 组件技术与MatrixVB完成了VB与MA TLAB混编,实现了图像的绘制。
从两种实验结果来看,这两种方法占用计算机内存小,且编程语言简单,充分利用了VB与MATLAB的特点,简化了编程过程。
关键词:VB;MATLAB;com组件;MatrixVB0引言VB具有方便的资源文件集中管理模式、开发周期短、开发环境友好等特点。
MATLAB具有强大的计算机绘图能力,并且提供大量的数据库,但是界面开发能力差、代码运行效率低。
将VB与MATLAB 的特点结合起来,运用VB与MATLAB混合编程实现仿真,使两者相得益彰,不失为一种有益的尝试。
1VB与MATLAB接口编程方法VB与MATLAB混合编程有多种方法,各有优缺点,主要有下面几种方法。
1.1利用ActiveX技术ActiveX自动化(OLE自动化)协议是一种允许一个应用程序(控制端)去控制另一个应用程序(服务器端)的协议。
在VB下通过ActiveX自动化接口可将MATLAB作为Visual Basic语言的一个ActiveX部件调用。
但是这种方法不能脱离MATLAB运行环境,占用计算机内存较大。
1.2利用可执行文件技术这种方法将MATLAB的运算模块生成可执行的exe文件,然后在VB运行环境下调用。
这种方法占用内存较小,运行效率较高。
1.3利用MatrixVB技术MatrixVB 是MathWorks 公司为VB 开发的插件,插件增强了VB 绘图和计算的函数集合。
它包括基本的数学运算和功能强大的信号处理、线性代数、串运算及图形图像处理功能,用来补充VB 本身内建函数和图形处理的不足。
这种方法运行效率高、占用内存小。
1.4利用动态数据交换(DDE)技术动态数据交换(DDE)是在Windows环境下支持客户/服务器计算模式的重要技术。
由于VB支持DDE客户端功能,MA TLAB提供了DDE服务功能,因此,利用VB和MATLAB的动态数据交换能力,可以实现在VB应用程序中调用MATLAB。
3.1 MATLAB与Visual Basic语言的混合编程方式MATLAB提供了与C/C++、Fortran语言的接口,但没有与Vsiual Basic语言的接口,要想实现MATLAB与Visual Basic的混合编程可以通过以下途径来实现。
1.通过ActiveX方式一是用Visual Basic开发服务器ActiveX组件,MATLAB作为客户端程序使用,事实上无论是用VB还是VC或者其他语言环境开发的ActiveX组件,对于MATLAB来说集成与调用方式是一样的,一般情况下很容易地将不同环境下开发的用途各异的ActiveX对象集成到一个MATLAB应用中来。
其使用方法见第5章关于MATLAB作为ActiveX的客户端使用方法。
二是在VB环境下可以通过ActiveX自动化接口将MATLAB作为Visual Basic语言的一个ActiveX 部件调用。
MATLAB ActiveX自动化服务的功能主要包括在MA TLAB工作空间执行MA TLAB 命令,以及直接从工作空间存取矩阵等,我们在第5章中关于MA TLAB作为服务器组件的部分的例子就是以Visual Basic应用程序,以MATLAB作为服务器客户端的。
2.通过动态链接库方式该种方式是一种间接调用MATLAB命令的方式,借助于C++与MA TLAB的接口,将MATLAB 的程序文件(.M文件)编译为动态链接库(.DLL),VB在代码中与调用其他语言编写的DLL文件一样调用MATLAB中.M 文件生成的动态链接库。
这种方法可以脱离具体的MA TLAB环境,运行效率较高。
3.通过嵌入VB的矩阵函数库MatrixVB的方法MatrixVB是由第三方(mathtools公司)提供的COM组件,包含了大量与MATLAB相似的函数与调用语法,可以加强VB内建数学运算与图形展示功能,在VB程序代码中可以像使用VB自己的函数一样使用MatrixVB的函数,而且可以不依赖于MATLAB的环境在Visual Basic中完成矩阵运算与图形绘制显示等功能,这种方法使用起来简单,编程效率较高。
浅谈VB与M AT LAB相结合的三种方法樊金荣① 黎洪生② 摘 要 本文分别介绍了在VB中调用M atlab的三种方法:利用动态链接库DLL、利用动态数据交换D EE以及利用A ctivex自动化技术。
并以具体的例子给出通过这些方法实现了VB的可视化界面与M atlab强大的数值计算和图形显示能力的结合。
关键词 客户 服务器 M atlab DLL DD E A ctivex 技术一、前言V isual Basic是由M icro s oft公司开发的在W indow s95 98平台上的一种十分强大和有生命W indow s编程语言之一,具有易学易用、编程简单、程序集成化程度高及界面可视化又能实现大多数W indow s编程目的,因而一经推出就风靡全球然而,VB提供的数学函数及其有限,因而使之在数值计算和图形显得力不人心。
M atlab是M ath W o rk s公司开发的一种工程计算语言。
用这个交互系统可以解决很多工程计算问题,特别当涉及到矩阵和矢量形式的问题时,M atlab提供了强大的矩阵处理的和绘图功能。
显然,将二者结合起来,能实现VB 可视化界面下运用M A TLAB强大的数值计算和图形显示,使VB编更加灵活快洁。
二、采用动态链接库DLL方法M atcom是一个从M A TLAB到C++的编译器,它可以节省用户的运算时间和内存要求。
M ath too ls公司利用M atcom4技术编写了M ideva工具软件,它可以借用C++编译器将M atlab下的M-文件转换为可被VB调用的DLL或独立瓣可执行文件。
VB中要使用DLL,必须在VB工程中包含DLL的声明文件(即模块文件),同时还要将DLL放在工程文件所在的目录下。
如下操作可以一个M-文件编译成DLL:启动M atcom4的M ideva,点菜单F ile Comp ile,选要转换的M-文件应该是能作为函数被其他集城环境调用的M-文件,设文件名为m yfile)。
编译完成后,在对应的D ebug或R elease目录下,可以找到一些编译生成的文件。
VB需要用到的文件有两个。
m yfile.dll(DLL文件)m yfile.bas(在VB中声明DLL的模块文件)。
事实上,m yfile.dll中的函数并不能直接与VB进行数据交换,它只能通过矩阵数据进行操作。
M ah tToo ls提供了一个单独的C++库文件m atlib42.dll(相当VB集成环境与DLL之间的代理,它包含有20多个矩阵句柄操作函数和800多个从M atlab中转换来的矩阵函数)以及相应的模块文件m atlib42.bas。
为了在VB中能调用这类DLL,必须将m yfile. bas和m atlib42.bas加入工程中,并将m yfil.dll和m atlib42. dll拷贝到工程所在的目录下。
编译后,在VB中的函数名为m yfile-in-out,其中,in和out分别为函数的输入输出参数的个数。
注意,在编程时,必须调用m t In it M来初始化库文件,即请求允许使用转换的DLL,并调用m tEx it M来结束这种请求。
另外,还要使用其它的矩阵句柄函数来分配、访问和释放矩阵句柄。
这种方式最简单的例子是直接调用m atlib42.dll中提供的inv-2-1来计算矩阵的逆。
二、采用动态数据交换D EE方法该方法是利用M A TLAB提供的客户 服务器(C lien t Server)功能,VB应用程序作为系统主控,用M atlab作为后台应用程序完成复杂计算任务与绘画功能,M atlab与VB应用程序间通过DD E协议进行数据交换,DD E(D ynam ic D ata Exchange)是一种开放的、与语言无关的、基于消息的协议,它是应用程序通过共享内存进行进程通信的一种形式。
VB应用程序首先通过确定服务器名和主题(top ic)建立与M A TLAB的DD E会话,服务器名和主题唯一地确定作为客户端,M atlab作为服务端,客户端与服务端可以就确定的项目(Ite m)交换数据。
关于VB的DD E功能可以参文献。
VB应用程序中需指明的M A TLAB的服务器为M atlab,, M A TLAB有Syste m和Engine两个主题,在Syste m主题下可以列出M A TLAB所提供的详细的DD E功能,在Engine主题下可以充分实现M A TLAB的服务功能。
利用VB具有的DD E客户端功能,使用M A TLAB的Engine主题支持的三种操作,VB应用程序主河以向M A TLAB传送可执行的命令,从M A TLAB中读取数据以及向M A TLAB中传送数据。
VB为用户提供的支持DD E通信的控件有:窗体(Fo r m)、多文档窗体(M D I Fo r m)、标签(L abel)、文本框(T ex t Box)和图片框(P icture Box)。
相应于DD E协议,这些控件提供了完成一次DD E链接需要的属性和事件,以及设置①②黎洪生 武汉理工大学自动化学院 教授 博士生导师 武汉 430070樊金荣 武汉理工大学自动化学院 硕士 武汉 430070必要的参数和响应DD E 过程事的事件。
服务器应用程序开发涉及到的主要属性如下:1.L i n k M ode :对于一个V isual Basic 程序来说,作为一个服务器程序和作为一个客户程序时,它们的L ink M ode 属性的取值是不同的。
当一个V isual Basic 程序作为服务程序时,L ink M ode 属性只是针对Fo r m 的,它的取值为“1-Source ”。
此时,这个Fo r m 中的P icture Box 控件、T ex tBox 控件和L abel 控件就可以作为客户程序的信息源。
2.L i n k Top i c :如同L ink M ode 属性一样。
对于服务器程序和客户程序来说,属性有不同的意义。
对服务器程序来说,L ink Top ic 属性是针对Fo r m 的,用户可以将服务器程序中的Fo r m 的属性设置为任何一个名字,该名字在客户应用程序中使用。
3.L i n k Ite m :是指通过一个DD E 链接传输的数据容器,它是标签(L abel )、文本框(T ex t Box )和图片框(P icture Box )的名称。
下面以一个具体的例子来说明该方法:在VB 主窗体中设置T ex tl 、T ex t 2两个文本框,当T ex 1的内容有变化,则x 矩阵获得变化后的数据,而后在函数m yfunc 中进行矩阵相乘运算,并把结果返回至T ex t 2控件中。
在实际应用中,m yfunc 函数可以是任意复杂的数据处理函数和控制算法函数。
程序清单:channel =ddein it (′Server ′,′DD E ′);rc =ddeadv (channel ,′T ex tl ′,′m yfunc ′,′x ′,[1,0]);Pause ;rc =ddeunadv (channel ,′T ex tl ′,[1,0]);rc =ddeter m (channel );其中m yfunc 为自定义的m atlab 函数:Functi on y -m yfunc (x 3x );rc =ddepoke (channel ,′′,y ,[10]);注意:利用动态数据交换调用M A TLAB 时,M A TLAB 的命令窗口必须在建立DD E 会话之前已经运行四、采用Acti veX 自动化技术A ctiveX 自动化(OL E 自动化)协议是一种允许一个应用程序(控制端)去控制另一个应用程序(服务器端)的协议。
由于VB 支持A ctiveX 自动化控制端协议,M A TLAB 支持A ctiveX 自动化服务器端协议。
如果已经建立了一个VB 应用程序和M A TLAB 之间的A ctiveX 自动化连接,那么一个VB 应用程序中就可以调用M A TLAB 的命令、向M A TLAB 传送或从M A TLAB 接收矩阵数组。
在VB 应用程序中创建了M A TLAB 的A ctiveX 对象以后就可以使用这个对象所包含的各种方法来实现对M A TLAB 的调用。
M atlab .A pp licati on 对象含有3个方法,可以实现任决定何M A TLAB 功能。
现简单介绍它们的用法。
1.Execute (Co mmand a s Str i n g )方法:执行本方法将调用M A TLAB 执行一条Comm and 字符串决定的M A TLAB 命令,同时返回一个字符串表示命令的执行情况。
任何能在M A TLAB 命令行窗口执行的命令均可以被包括在Comm and字符串中。
2.GetFull M a tr i x 方法:该方法用来将M A TLAB 中的一个矩阵变量传送室VB 程序的一个1维或2维数组中。
3.PutFull M a tr i x 方法:该方法用来将VB 程序的一个1维或2维数组传送到M A TLAB 中的一个矩阵变量中。
4.Vo i d M i n i m i xe Co mmand W i n dow ()方法:该方法用来M A TLAB 使命令行窗口最小化,具体调用如下:Call m atlab M in i m ize Comm and W indow ()。
5.Vo i d M ax i m i ze Co mmandW i n dow ()方法:该方法用来使M A TLAB 命令行窗口最大化,具体调用如下:CallM atlab .M ax i m ize Comm and W indow ()下面我们用具体例子如何使用该方法:例:VB 中建立一个新窗口,上有3个控件。
按钮Comm and 1、编辑框T ex t 1,用来接收M A TLAB 命令、文本控件L abell 用户按下Cmm and 1,该程序运行编辑框中给出的M A TLAB 语句,并将其结果在L abell 控件中显示出来。
(1)建立一个VB 窗口,在其变量声明部分要调用M A TLA T 的A ctiveX 部件,通过如下应用程序在VB 创建A ctiveX 部件,通过如下应用程序在VB 中创建A ctiveX 对象:D i m M atlab as O bject (2)在按钮中给出下面的命令P rivate Sub Comm and 1-C lick ()Set M atlab =C reate O bject (M atlab .A pp licati on )L abell .Cap ti on =M atlab .Execute (T ex tl .T ex t )End Sub如果在T ex t 1中输入一个命令“Surf (peak s )”,按下Comm and 1键后,VB 应用程序通过建立与M A TLAB 的DD E会话,经M A TLAB 执行后生成图形。