基于VB与MATLAB混合编程数据库图形显示方法
基于VB与Matlab的混合编程方法
( 9 2 9 5 7部 队
陈 进 明
舟山 3 1 6 0 0 0 )
摘
意 义。
要
根据 Ma t l a b强大的数据处理能力和 Vi s u a l B a s i c 界 面开发能 力的编程优点 , 研究探讨 了两者 相结合混合编程 的方法 , 并分 析
了 各种混合方法 中数据格式、 数据 交互机制及具体应用实例 。采用两者混合编程对 工程计 算软件 的开发 , 提高开发质量 和效率具有重要 的
W EI Ya n l i n CHEN J i n mi ng
( No .9 1 9 5 7 Tr o o p s o f PLA 。Z h o us h a n 3 1 6 0 0 0 )
Abs t r a c t I n t e r m o f t he r e s p e c t i v e a d v a n t a g e s o f Ma t l a h a n d Vi s u a l Ba s i c s o f t wa r e,r e s e a r c he s a r e d o ne i n t h i s p a p e r on p r o g r a mmi n g wi t h Ma t l a b a n d Vi s u a l Ba s i c s o f t wa r e t o g h t e r .Th i s p a p e r s ho ws d i f f e r e n t me t h o d s i n p r o g r a mm i n g wi t h t h e t wo s o f t wa r e s a n d a l s o g i v e s s o me s i mp l e i l l us t r a t i o n s a b o u t d i f f e r e n t me t h o d s .I t h a s g r e a t i mp o r t a n c e t O h e l p p r o g r a mm e r s wi t h h i g h q u a l i t y a n d e f f i c i e n c y .
五种VB与MATLAB混合编程接口的方法
摘要: 为充分发挥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 程序的一个一维数组或二维数组中。
【推荐下载】关于matlab与vb混合编程技术研究
关于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 的应用软件系统。
基于VB与MATLAB混合编程的数据可视化与数据挖掘软件的研究
基于V B与M A TLA B混合编程的数据可视化与数据挖掘软件的研究谢松,周卫,李文林*,杨秦南京中医药大学,江苏南京210023摘要:基于V B和M A TL A B混合编程技术,在自动分词系统与共词分析的基础上,设计开发了可应用于中医药等领域的数据可视化与数据挖掘软件系统,对346个中医外用复方的组成成分与主治病症进行统计分析与数据挖掘,为相关领域的研究提供快捷便利的分析工具。
关键词:V B;M A T LA B;数据可视化;数据挖掘doi:10.3969/j.issn.2095-5707.2014.02.003A Resear ch on Data Visualization and Data Mining Software Ba sed on VB and MATLAB Hybr id Pr ogr amming Xie Song,Zhou Wei,Li Wenlin*,Y ang Qin(Nanjing University of Traditional Chinese M edicine,Nanjing Jiangsu210023,China)Abstra ct:The research designed and developed a data visualization and data mining software which can be applied in Traditional Chinese Medicine(TCM)field based on VB and MATLAB hybrid programming,with the development of automatic segmentation system and co-word analysis.It statistically analyzed composition and effects of346TCM compounds for external use,which can be used as a convenient analysis tool in related study field.Key wor ds:VB;MATLAB;data visualization;data mining数据挖掘可以从大量数据中发现隐藏的特定模式和规律,从而可以为商业活动、科学探索和医学研究等诸多领域提供必需的信息知识。
VB调用MATLAB混合编程教程(完整版)
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)。
但由于其仍然采用解释执行,执行效率较低,实时运算难以实现。
Matlab与VB混合编程
3、生成COM组件
(1)设置系统路径
我的电脑属性 高级 环境变量 系统变量 Path选项,增加以下路径:
头文件:C:/MATLAB7/extern/include;
库:C:/MATLAB7/extern/lib/win32/microsoft/msvc60; DLL:C:/MATLAB7/bin/win32
,在算法上采用C++语句,所以运行速度较快,可应用于实时运算
。通过这种方法可以发布成脱离MATLAB和VB的安装软件, 在其他没有安装MATLAB和VB软件的计算机上都能运行。
8 /23
实现步骤(一) Matlab7.1 版
1、开发环境: Visual Studio 6.0 Matlab7.1安装路径不能有空格或中文 2、编写m文件 (注:m文件必须为m函数,不能是脚本文件) function plotcur x=0:0.01:2*pi; y=sin(x); set(gcf,'visible','off'); plot(y) print -dmeta; close(gcf);
1 /23
主要内容
一、 ActiveX技术 二、 动态链接库(DLL)
实现步骤(一) Matlab7.1 版
开发环境 编写m文件 生成COM组件 VB中调用动态链接库
应用程序发布
应用程序安装
实现步骤(二) Matlab2013a 版
2 /23
一、 ActiveX技术
ActiveX自动化协议是一种允许一个应用程序 或组件去控制另一个应用程序或组件的协议,VB和 MATLAB都支持ActiveX自动化协议。通过自动化 协议,可以在VB应用程序中执行MATLAB命令, 并从的MATLAB工作空间中获取数据以及向 MATLAB输送数据从而实现数据的交互。要实现这 种功能,用户首先必须获得Matlab ActiveX对象在 系统注册表中定义的名字─Matlab.Application。
基于VB与Matlab的混合编程方法_隗燕琳
2.1 采 用 动 态 链 接 库 DLL(Dynamic Link Libraries)方 法 编程
DDL 方 法 是 用 Matlab 提 供 的 COM 生 成 器 (COM Builder)[3],将 Matlab开发的算法做 成 组 件 ,这 些 组 件 作 为 独立的 COM 对 象,
步骤4打包和分 发 组 件:一 旦 组 件 生 成 成 功 就 可 以 打 包分 发 给 使 用 用 户,在 Component 菜 单 中 选 择 Package Component选项就可创 建 一 个 自 解 压 可 执 行 程 序;如 果 该
* 收稿日期:2013年2月27日,修回日期:2013年3月30日 作 者 简 介 :隗 燕 琳 ,博 士 ,工 程 师 ,研 究 方 向 :舰 船 磁 性 防 护 。
Vol.41 No.8 1388
计算机与数字工程 Computer & Digital Engineering
总 第 286 期 2013 年 第 8 期
基于 VB 与 Matlab的混合编程方法*
隗燕琳 陈进明 (92957 部 队 舟 山 316000)
摘 要 根据 Matlab强大的数据处理能力和 Visual Basic界面开发能力的编程优点,研究探讨 了 两 者 相 结 合 混 合 编 程 的 方 法 ,并 分 析 了各种混合方法中数据格式、数据交互机制及具体应用实例。采用两者混合编程对工程计 算 软 件 的 开 发 ,提 高 开 发 质 量 和 效 率 具 有 重 要 的 意义。
2013 年 第 8 期
计算机与数字工程
1389
项目要在 其 它 用 户 计 算 机 上 所 使 用,运 行 自 解 压 程 序 将 DLL 文件注册于其它计算机即可。
Matlab与VB混合编程
*打开生成的安装包中的
setup.Lst文件,[Bootstrap Files]字段里面只保留 VB6STKIT.DLL和 msvbvm60.dll几个文件, 其余的都删掉,否则在不同 版本的系统上使用可能会 报错。
16 /23
6、应用程序安装 (1)安装VB应用程序。在要安装的计算机上,新建一 个文件夹作为应用程序的安装目录。将打包好的VB程序 中的压缩包(.CAB)解压到安装目录中再进行安装。 ( 2 )安装 Matlab 控件。运行 COM 组件包中的 distrib 文 件夹下的类名.exe文件,运行过程中全部按“y”覆盖原 文件。将安装目录指向VB应用程序安装所在的目录(即 VB应用程序与Matlab控件安装在同一个目录下),否则 dll文件是没有办法注册的,选择后,全部点击Next,至 Matlab Component Runtime安装完成,DOS安装界面也 会随后自动关闭。
,在算法上采用C++语句,所以运行速度较快,可应用于实时运算
。通过这种方法可以发布成脱离MATLAB和VB的安装软件, 在其他没有安装MATLAB和VB软件的计算机上都能运行。
8 /23
实现步骤(一) Matlab7.1 版
1、开发环境: Visual Studio 6.0 Matlab7.1安装路径不能有空格或中文 2、编写m文件 (注:m文件必须为m函数,不能是脚本文件) function plotcur x=0:0.01:2*pi; y=sin(x); set(gcf,'visible','off'); plot(y) print -dmeta; close(gcf);
编译
编译过程
21 /23
4、生成自解压安装包 在本地使用的话,MATLAB会自动注册 COM 组件,无需发布;但如果要在没有安装 MATLAB的计算机上使用,安装包就需添加 MATLAB运行库MCR。点击PackageAdd MCR
VB与MATLAB混合编程研究与实现
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。
MATLAB与VB混合编程方式简易教程
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与Matlab混合编程的图像处理研究
Malb数 学运 算工 具 函数进 行 有关 数 学运算 的接 口; t a ④C OM 组 件 , 一种 通用 的对 象接 口 , 何语 言 只要 是 任
按 照 这种接 口标 准 , 就可 以实现 调 用它 。
最有 活力 的工程 应 用软件 之 一 。 起源 于矩 阵计算 , 它 目
中图 分 类 号 :T 3 1 P 9 文 献 标 识 码 :A
AB TRACT An l sso h S a y i f eVB6 0a d M a l b . a h p o i e t eme h d o h a i o n e f c ,a d t i y VB a d M a lb t . n ta 7 0 e c r v d h t o n t eb ss f t ra e a a f e b n ta i l
度 ,同时兼顾 了代 码安 全和 界面 友好 ,适 合于 开发 一个在 W id ws工作环 境 下运行 的、具 有 丰富 的程 序接 口以 no
及 图像 处理 能力 的应 用软 件 ,且 大 大提 高 了开 发效 率 ,对于解 决 工程 问题具 有较 大 的参考 价值 。
【 键词 】混 合编 程 , 图像 处理 ,数据 文件 关
s ia l o h e e o me to r n t e W i d wso e a i g e v r n n , a ih i t ra e a d i g r c s i g c p b l is u t b e f rt ed v l p n fawo k i h n o p r t n io me t h s arc n e f c n ma ep o e sn a a i t n ie o h p l a in s fwa e n r a l n a c e eo me te f i n y two k O s l et e e g n e i g p o l m t h a g r ft e a p i to o t r ,a d g e ty e h n e d v l p n fi e c .I r s t o v h n i e rn r b e wi t e lr e c c h
基于VB与MATLAB接口实现三维图输出技术
在VB 环境下通过编程实现3D 图形的输出,需要大量的专业化的科学计算,这就给不是从事专业图形处理的科学技术人员带来很大麻烦。
为了解决这一问题,采用编程效率很高的通用编程平台VB 实现系统的控制与数据采集,调用具有强大矩阵运算、数据处理和图形输出功能的MATLAB 语言实现三维图形的绘制。
经常可见VC 调用MATLAB 实现三维图的绘制,但本方法运用界面友好易于编程的VB 语言调用MATLAB COM 接口编程,成功实现了系统的三维图输出,使得VB 语言的用途得到新的创新。
1MATLAB 的COM 自动化技术MATLAB 支持组件自动化(COM Automation ),即一个COM 协议,该协议允许一个程序或组件去控制另一个程序或组件。
MATLAB 支持的组件技术有以下三方面的内容:①在MATLAB 下运行其它软件的组件。
②在其它程序下运行MAT-LAB 的组件(包括MATLAB 自身)。
③将所需的MATLAB 功能,利用MATLAB 自带的COM Builder 工具自动转换生成组件,供其它程序使用。
在其它程序下运行MATLAB 的组件时,交换发起方的应用程序称为客户端,交换的响应方MATLAB 称为服务器端,自动化服务器的核心是包含一个或多个供其它应用程序创建和连接的基于Idispatch 的接口,MATLAB 作为自动化服务器时,可以被Windows 平台上任何可作为自动化控制器的应用程序使用。
通过使用MATLAB 自动化服务器功能,用户可以在自己的应用程序中执行MATLAB 的命令,并从MATLAB 的工作空间中获取数据以及向MATLAB 输出数据。
将MATLAB 作为一个自动化服务器使用时,必须知道MATLAB Axtive 对象在系统注册表中定义的名字ProgID ,一般使用MATLAB.application ,当应用程序使用MATLAB.application 作为ProgID 启动MATLAB 自动化服务器时,表示将MATLAB 自动化服务器作为一个共享服务器,当其它应用程序以同样的ProgID 开启MATLAB 服务器时,系统不再另外初始化一个服务器,而是使用同一个服务器来完成所有的请求。
基于VB与Matlab的混合编程方法
基于VB与Matlab的混合编程方法隗燕琳;陈进明【期刊名称】《计算机与数字工程》【年(卷),期】2013(041)008【摘要】In term of the respective advantages of Matlab and Visual Basic software,researches are done in this paper on programming with Matlab and Visual Basic software toghter.This paper shows different methods in programming with the two softwares and also gives some simple illustrations about different methods.It has great importance to help programmers with high quality and efficiency.%根据Matlab强大的数据处理能力和Visual Basic界面开发能力的编程优点,研究探讨了两者相结合混合编程的方法,并分析了各种混合方法中数据格式、数据交互机制及具体应用实例.采用两者混合编程对工程计算软件的开发,提高开发质量和效率具有重要的意义.【总页数】3页(P1388-1390)【作者】隗燕琳;陈进明【作者单位】92957部队舟山316000;92957部队舟山316000【正文语种】中文【中图分类】TP312【相关文献】1.MATLAB与混合编程方法在伺服机构动态测试中的应用 [J], 施金花;王斌;张鑫彬;李文顶2.VB与MATLAB相结合混合编程方法的研究 [J], 李俐玲3.VB与Matlab的混合编程方法 [J], 冯莉;李巨;邓云华4.Matlab、Access和混合编程方法的研究和应用 [J], 张良;何也熙5.VB和Matlab混合编程方法——MatrixVB [J], 孟繁娟;杜永平因版权原因,仅展示原文概要,查看原文内容请购买。
VB调用Matlab制作的COM组件实现二者混合编程
4、Matlab中处理返回结果并使用它进行进一步计算或可视化等操作。
四、注意事项
在使用基于COM的VB与Matlab混合编程时,需要注意以下几点:
1、确保VB COM接口和Matlab代码之间的兼容性。这通常需要对两种语言进 行适当的转换和映射。
2、COM接口的创建和实现可能需要耗费大量时间和精力,因此需要仔细规划 和设计。
4.处理异常
在调用Matlab函数时,你可能会遇到各种异常情况,例如参数类型不匹配、 参数数量不匹配等等。为了处理这些异常,你需要在VB代码中使用异常处理机制:
result = myMatlabObject.YourFunctionName(input1, input2)
' Handle the exception here
1、创建Matlab COM组件
首先,我们需要创建一个Matlab COM组件。打开Matlab,编写你希望从VB 调用的函数,例如一个用于图像处理的函数。然后在命令窗口中输入以下命令以 创建COM组件:
这将打开COM工具箱。在“新建项目”窗口中,选择“COM库”,然后输入库 名和位置。接下来,添加你的Matlab函数到库中。
在这个例子中,如果myMatlabObject.YourFunctionName(input1, input2) 抛出一个异常,那么这个异常会被Catch块捕获,并可以进一步处理。
5.在VB中使用返回值 在你的Matlab函数返回值后,你可以在VB中使用它。例如:
在这个例子中,如果result不是Nothing,那么你可以进一步使用这个结果。 6.错误检查和清理
1、创建 MATLAB函数:首先
例如: function obj = MyClass(x) function result = add(obj, y)
【推荐下载】探究vb与matlab混合编程
[键入文字]
探究vb与matlab混合编程
探究vb与matlab混合编程
1 VB和Matlab混合编程的方法和算例由于Matlab本身只提供了Fortran、C语言的接口程序,所以无法直接实现VB对Matlab的调用.故Matlab与VB混合编程中需要解决的关键是如何实现在VB中调用Matlab. Matlab与VB混合编程的方法主要有下面4种.
1 1 ActiveX技术ActiveX技术是以组件对象模型(componentobject model,COM)技术为基础的一种应用程序开发技术和体系结构的总称,它是Microsoft公司提供的一种用于模块集成的新协议,它允许应用程序或组件控制另一个应用程序或组件的运行. Matlab5.
0以上的版本均支持ActiveX的嵌入.因为VB支持ActiveX自动化控制端协议,Matlab 支持ActiveX自动化服务器端协议,所以VB和Matlab的通信有两种:一种是自动化服务器,另一种是自动化控制器.本文重点探讨VB如何通过ActiveX接口将Matlab作为VB 的一个ActiveX部件,实现数值计算和图形显示.要实现这种功能,用户首先必须获得Matlab ActiveX对象在系统注册表中定义的名字─Matlab.Application.在所编写的程序中必须有如下的代码:Dim Matlab as ObjectSet.
1。
基于VB与MATLAB混合编程数据库图形显示方法
价值工程0引言实验数据库系统采用SQL Server ,并使用VB 进行应用程序的开发,主要任务是存储实验中积累的实测数据。
为了更直观的表达出关于数据和知识的信息,并对数据库中的数据进行调用和分析,这就需要增加数据库和用户之间的交流,所以,适当的运用可视化技术可以为用户做出更好的服务,并大幅度的提升数据库的使用效率,强化数据库的功能。
在以前,普遍的解决数据图形化的方法就是创建一个专门的图形库,需要显示数据图形的时候,就直接从图形库中调用需要的图形,但是这种方法存在很大的弊端,一方面是工作量很大;另一方面是这种方法改变了数据库的结构,使得数据库更加繁琐复杂[2][3]。
当然也可以单独的采用VB 开发数据库下的图形显示的应用程序,但是由于数据库中的实测数据繁多,并且采样率也很高,数据文件比较大,这就造成VB 程序下的图形显示功能,运行的比较慢,影响工作的效率。
此外,MATLAB 也能够实现这一功能,MATLAB 具有强大的数据分析,信号处理和图形处理的功能,但是MATLAB 也有自身的局限性,它是一种解释性的语言,在执行程序的时候不能够脱离本身的编译环境,而且还没有和VB 连接的接口设施。
可以说VB 和MATLAB 二者都有着各自的优点和缺点,如何将二者的优点相互结合,取长补短,就能够使得数据库图形化问题很好的解决,因此,本文提出了二者混合编程,提高可视化应用程序的效率,并优化数据库结构。
1基于VB 与MATLAB 混合编程的数据库图形显示1.1数据库图形显示需求分析VB 访问SQL Server 数据库的时候虽然很安全和方便,但是其本身的数据图形显示功能不强,而且数据库文件大,VB 在执行的时候显得更加效率低下,而试验数据文件中的数据量通常会很大,因此,利用Matlab 在图形显示上的强大功能和效率,并运用VB 与Matlab 混合编程的方法,把数据文件中的数据进行图形化,就能够实现数据的图形化,使得数据更直观的呈现了用户的面前。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第30卷 第3期2009年9月制 导 与 引 信GU I DANC E &F UZEVol.30No.3Sep.2009文章编号:167120576(2009)0320036205基于VB 与M ATL AB 混合编程数据库图形显示方法卢 振, 曹 屹, 范 永(机电工程与控制国家重点实验室,陕西西安710065) 摘 要:针对以往数据库中图形显示方法工作量大,数据库结构复杂,或者数据文件庞大,造成在VB 环境下开发的应用程序执行效率低等问题,提出了基于VB 与MA TLAB 混合编程的数据库图形显示方法,采用Mat rixVB 插件进行数据库中数据图形显示的开发。
在兵器目标与环境特性数据库中的应用表明,便利了对库中数据的查询、分析与使用,提高了效率,同时优化了数据库结构。
关键词:数据库;图形显示;目标识别中图分类号:TP392 文献标识码:AThe Method of G ra phic Displa y in Data B a se onVB and MATLAB Combined Pr ogra mmingL U Zhen , CA O Yi , FA N Y o ng(National K ey Laborat ory of El ect romechanical Engineering a nd Cont rol ,X i ’an Shaanxi 710065,China ) Abst ract :It i s difficult to di splay t he dat a i n t he dat a base because of heavy workload ,complex st ruct ure or large dat a fil e.It i s inefficient for t he applicat ion p rogram base d on VB envi ronment to di splay t he dat a i n t he dat a base.Put s a new data base graphic di splay met h 2od based on VB and MA TLAB co mbine d programmi es Mat rixVB car d t o di splay t he data grap hic in dat a base.It i s conveni ent for dat a query ,analysis a nd use in t he dat a base.It ha d been rai sed t he efficiency and opti mized t he st ruct ure i n t he data base of tar get and en 2vironment charact eri st ic for weapon.K ey w or ds :data ba se ;graphic di splay ;tar get reco gnit ion收稿日期56作者简介卢 振(),男,硕士,工程师,主要从事目标特性研究与数据处理工作。
:2009-0-0:1979-第3期卢 振,等:基于VB与MA TLAB混合编程数据库图形显示方法 0 引言兵器目标与环境特性数据库系统采用SQL Server,使用VB进行应用程序的开发,并存储管理目标与背景的实测数据。
在使用兵器目标与环境特性数据库时,往往需要对库中的数据进行调用分析,使用适当的可视化技术作为服务数据库与用户之间的沟通纽带,可为用户提供关于数据和知识的直观信息[1],极大地提高对数据的使用效率,增强数据库功能。
以前解决数据图形化的方法是专门建立一个图形库,显示数据图形就调用图形库中的相对应图片,这种方法工作量大,增加了数据库结构[2,3]。
还有一种方法是单独使用VB开发数据库下的图形显示应用程序,由于库中大量实测数据采样率高、采样时间长,使得数据文件庞大,造成在VB环境下开发的应用程序执行效率低[4]。
MA TLAB具有强大的数值分析、信号处理和图形处理等功能,但MA TL AB是一种解释性语言,执行时不能脱离MA TLAB编译环境[5]。
本文结合VB与MA TLAB各自优点,提出使用两者混合编程,进行数据库中数据图形化的实现,以提高可视化应用程序的效率,优化库结构。
1 VB与MA TL AB混合编程方法VB与MA TLAB的集成,主要有ActiveX技术、动态链接库和Mat ri xVB插件三种实现途径[6,7]。
1.1 利用Act iveX控件Mi crosoft的Acti veX技术是一种用于模块集成的新协议,它是工具箱的扩充部分。
在程序中加入Acti veX控件后,它将成为开发和运行环境的一部分,并为应用程序提供新的功能。
MA TLAB实现了Act ivex服务支持,只要建立一个VB应用程序与M TL B之间的X连接,那么这个VB程序中就可以调用M TL B的命令,向M TL B传送和接收数据。
1.2 动态链接库DLL方法机器必须安装C++编译器、VB和MA T2 LAB,可以借用C++编译器将MA TLAB下的“3.M”文件转换为可被VB调用的DLL或独立可执行文件。
VB中要使用必须在VB工程中包含DLL的声明文件(即模块文件),同时还要将DLL放在工程文件所在的目录下。
调用DLL文件须找到接口函数。
接口函数在以“3.M”文件名命名的C文件中。
通过查看注释,可以找到接口函数是以“mlf”为前缀和以M文件名为后缀的函数。
要实现DLL文件,还需要在VB窗口通用栏中声明接口函数。
语法如下:decl are function/sub<函数名>li b”<dll路径及文件名>”Ali as”<函数名>”<参数表>as <Type>。
1.3 利用Mat r ixVB插件Mat ri xVB插件是Mat hWorks公司专门为VB提供的编程接口,它实际上是一个内化到VB 中的功能丰富的数学函数库。
利用它不需激活MA TL AB,就可以实现MA TLAB中几乎所有的复杂数学计算及图形的绘制,从而实现VB与MA TL AB的完美结合。
实现编程也很简单,在计算机上安装Mat rixVB后,启动VB,建立一个新的程序,打开工程/引用菜单项,选中MMat rix 项,就可以在VB直接调用MA TLAB函数来进行程序的设计。
2 数据库图形显示2.1 数据库图形显示需求分析VB虽然能够安全方便的访问SQL Ser ve r 数据库,但它在数据图形显示方面功能较弱,特别在处理数据量较大的数据文件时,执行效率低,而试验数据文件中包含的数据量一般都比较大,所以利用M TL B在图形显示方面的强大功能,使用VB与M TL B混合编程的方法,把数据文件中的数据进行图形化,直观的把数据反映在73A A Active A uto mat io nA A A A A AA A 制 导 与 引 信 第30卷用户面前,方便数据分析使用。
兵器目标与环境特性数据库是基于C/S结构的SQL Server数据库,针对特性数据库开发的应用程序,应尽量简便、高效,既可在客户端也可在服务器端使用。
利用Active x控件实现调用MA TLAB命令的方法比较方便简单,但是每次在VB下执行程序时,会在后台启动MA TL AB,所以这种方法不能完全脱离MA TLAB环境,需在机器上安装MA TLAB系统,由此造成系统开销较大,效率较低。
DLL方法生成后执行效率高,调用方便,但需要环境复杂,涉及C++编译器,生成步骤繁琐。
Mat ri xVB适合于利用VB开发一般工程程序的要求,它直接在VB环境下开发,可方便生成可执行文件,便于发布,只是其提供的函数不适合处理非常复杂的数据。
2.2 混合编程在数据库图形显示中的方法选择通过以上对VB与MA TLAB混合编程方法的分析,如果利用Acti vex控件实现,对于数据库系统要在后台启动MA TLAB,执行速度将要慢许多。
使用DLL方法时,对于C/S结构配置将较复杂,所以在数据图形显示方面,使用Mat rix2 VB方法,利用其可完全满足实际要求:a)Mat ri xVB在VB环境下进行开发,程序设计完成后直接在VB环境下编译生成可执行的“.EXE”程序文件,完全脱离MA TLAB环境;b)Mat rixVB提供的函数完全满足开发需求;c)与服务器数据库系统连接后,可在客户端远程调用,执行效率高。
Mat ri xVB中函数的名称、功能和使用方法与MA TL AB中的函数基本相同,但也有一些不同,使用时可参照Mat ri xVB User’s G ui de(用户使用手册)和Mat ri xVB Reference Guide(函数使用参考)两个帮助文件。
3 混合编程与其它图形显示方法的比较为提供图形显示数据的功能,以前解决的办法是专门建立一个图形库,先借助其它应用程序把数据图形化,然后保存成图片格式入库,并与相应数据记录关联,显示数据图形实际是调用图形库中与数据相对应的图片。
这种方法在调用图片库时虽然执行效率高,实时性强,但增加了数据库结构,前期工作量大,因为每增加一条数据,都必须进行数据图形的图片化、图片入库、与相应数据关联等工作,工作流程如图1(a)所示,而且图片格式不能对图形上某一处关心的数据图形进行放大,以进行数值分析。
为了解决增加图片库带来的问题,可以开发数据库专用的数据图形显示程序,对数据进行图形显示,即调用图形显示程序对存储在数据库中的数据进行回读,并把数据以图形的方式表现出来。
单独使用VB进行数据回读并显示,这种方法实现简单,工作流程如图1(b)所示。
在回读大数据文件时效率较低,而且随着数据文件的增大,执行效率急剧降低,达不到实时效果。
同时,应用VB给出的图形曲线不光滑,如果需要对任意数据点进行放大,还须增加相应的控件。
本文使用Mat rixVB方法实现VB与MA T2 LAB混合编程,结合MA TL AB在数据处理以及图形显示方面的优势,可实时对用户所选择的数(a)图片库工作流程()VB工作流程()M xVB工作流程图 图片库、VB与M xVB应用程序工作流程832.b c at ri1at ri第3期卢 振,等:基于VB 与MA TLAB 混合编程数据库图形显示方法 据进行图形显示,并对数据文件中包含的数据头信息进行完整显示,工作流程如图1(c )所示。
利用Mat ri xVB 开发的数据图形显示应用程序到的图形曲线光滑,可任意点放大,且效率较高。