Matlab与VB混合编程

合集下载

MATLAB与VB的混合编程在稳态渗流分析中的应用

MATLAB与VB的混合编程在稳态渗流分析中的应用

·30· 计算机应用技术 机械 2007年第1期 总第34卷——————————————— 收稿日期:2006-10-20基金项目:湖北自然科学基金项目支持(2005ABA310)MATLAB 与VB 的混合编程 在稳态渗流分析中的应用邓洋1,易先中1,田亚南2,张春生3(1.长江大学 机械工程学院,湖北 荆州 434023;2.中国石油集团海洋工程有限公司辽河事业部,辽宁 盘锦124010;3.中海石油(中国)有限公司 天津分公司,天津 塘沽300452)摘要:阐述了应用MATLAB 与VB 编程工具相结合的手段开发稳态渗流特性研究软件的方法。

以一维流动的分析为例,MATLAB 建立了一维流动的数学模型,实现对流动特性的分析,并给出可视化的结果。

VB 与Matlab 的混合编程,有效的提高了程序的设计效率。

关键词:VB ; MATLAB ; 稳态渗流; 一维流动;中图分类号:TP391.72 文献标识码:A 文章编号:1006-0316(2007)01-0030-03Combined application of MATLAB and VB in analyzing of stable percolation DENG Yang 1 ,YI Xian-zhong 1 ,TIAN Ya-nan 2 ,ZHANG Chun-sheng 3(1. School of Mechanical Engineering ,Yangtze University ,Jingzhou 434023,China ; (2. Liaohe Department ,Offshore Engineering Ltd Co ,CNPC ,Panjin 124010,China ; (3. China National Offshore Oil Corporation Limited ,Tianjin Company ,Tanggu 300452,China )Abstract: The paper describes the method of how to combine the programming tools of MATLAB and VB to develop software for the characteristic analysis of stable percolation.The analysis of 1-D flow was made for instance ,a 1-D flow model of characteristic analysis is established with MATLAB , so the flow characteristics analysis can be made and the visible results can be simulated. The design efficiency is improved based on combined application of MATLAB and VB. Key words: VB ;MATLAB ;stable percolation ;1-D flowMATLAB 是一套高性能的数值计算和可视化软件,它集数值分析,矩阵运算,信号处理和图形显示于一体,用该语言进行复杂算法设计的效率很高,并能对分析结果进行直观的数据显示。

Matlab与VB混合编程在弧齿锥齿轮SGM调整卡计算中的应用

Matlab与VB混合编程在弧齿锥齿轮SGM调整卡计算中的应用

加工小轮机床坐标关系【5】5。
由图4可知机床调整参数可由下列公式确定
Eol=R01sin(筋一风1)
(1)
G,:盟掣 Sll-=_—_R—ol—C0—6届■01_
(LZ2,)
(3)

S1nOfl
ql=筋+jl
(4)
施施2=Gf一一盂鲁瓦
(L35’)
i‘:2——r'ROollC—OS卢fl
(Lo6,)
Spiral bevel gear SGM adjusmlent card
O引言
弧齿锥齿轮由于原理复杂,其设计和加工过程十 分繁琐,加工过程中的齿形参数和机床调整参数非常 多,所以其调整卡计算经常遇到复杂的数据计算和查 表等问题。Matlab以其科学计算功能的强大和开放式 的开发思想而成为当今最为流行的、最为优秀的科技 应用软件之一,在数值分析、科学计算、算法开发等方 面具有独特的优势,用其进行复杂算法设计和方程组 求解的效率很高,但Matlab也有局限性,一般它不能脱 离Matlab的集成环境,而且生成良好的人机交互图形 界面的功能不强…。VB是一种简单、易学和高效的可 视化软件拉J,但它的计算功能薄弱,因此将Matlab强大 的计算功能与VB在图形用户界面方面的优势结合起 来,可以有效缩短开发周期,提高程序开发的效率。
一1.3681
1.5489
一1.3684
1.5489
从上表的比较中可以看出两者计算得到的大部分 数据还是相同的,只有少数数据存在差异,且差异都在 误差允许范围的之内。
5结论
图5软件输入界面
4应用实例
在图5所示的VB界面中输入齿数、模数、齿面 宽、弧齿角和刀盘半径等基本参数时(其余界面略),系
统计算并输出调整卡参数计算结果,表1是其与商用 软件计算结果的比较(其余计算参数略)。

VB与Matlab混合编程在电阻基板安装平行度检测中的应用

VB与Matlab混合编程在电阻基板安装平行度检测中的应用
S N Jae, IJ fn , AO Ka g e g HE i i u e g MI n p n l L A sr c : n te ma ua t r g po e so u o t e ee t nc tr t ep st n s n o te d ge f aall m b t t e i a c b t a t I n fcu i rc s fa tmoi lcr i ot o i o e s r, h e r eo rl i o s s aer s tn e h n v o h l i p es f u r s a d s n o o s g i a m ot tid c tr.I h sa dr c a t n s n o e oma c n u le o o ,a ela af aey hs n  ̄ s r u i n i p r n iao s t a i t mp c e s rp r r n e a d fe c n my sw l s t f c sft .T i h n s n a e i o f ri p p rm k st eu eo e s o g p w r e n mb r o n ig i e Malb, o die i e a v t eo e itr c e in i B,t a e e s t t n o e t u e u t t t a h f h r f o h c n nh a c n3n d w t t d a a f e a ed sg n V hh n g h t n f o s le te a t mei d s n o a all m d tcin nr d cn e itr c r ga ov r h t e i p r ei ee t .I t u ig t e a ep r mmig b e n Mar VB b t e n Malb a d VB i m- h i c g f l s o o h n f o n a d o t x ew e t n e s i a n p a i.At a t rv n hs m to ss l , a yt p r t n c u ae tr u h a x mpe h s s s o i gt i eh d i i e e s o o eae a d a c r t h o g n e a l . l p mp

基于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混合编程的方法

关于实现VB与matlab混合编程的方法

相关图片如下:VB与MA TLAB混合编程探讨文章作者:朱志松郭晓丽朱小松文章类型:设计应用文章出处:电子技术应用--------------------------------------------------------------------------------摘要:介绍了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语言,特别对图形的处理非常方便,弥补了其他方法在图形处理上的弱点。

浅谈VB与Matlab混合编程

浅谈VB与Matlab混合编程

n n Obe t d l e t jcMo e, 部件对象 模型) 使得 软件部件 在网络环境 中进行 交互的技 术集, 它与具体的编程语言 无关 。Acie t X的 v 特点就 是使不同的软件对 象可 以跨进程、 跨平台并能在网络上 进行 交互 。MalbAcie 自动化 服 务的 功能 主要包括 在 t t X a v Malb工作空间执行 Malb命令 . t a t a 以及直接 从工作 空间存取 矩阵等 ,下面列 出了 Malb自动化 服 务支持的 几个 主要方 t a
Acie 是 M irs f 提 出 的 一 组 使 用 CO ( mp - t X v co ot M Co o
的请求和接 受者。通过 DDE方式建立的数 据连接通道是双 向
的 , C in” 但 能 读 取 “ ev r中 的 数 据 , 能 对 其 进 行 修 “ l t不 e S re” 还
【 摘 要 】为充分 发挥Maa 与v 各自 势, tb B 的优 将二者结合 进行工 l 起来 程应用 软件的 发。 介绍了 开 本文 五种V B与
M A AB混舍 编程 接 口的方 法 , 对各 方 法 性 能 的 优劣 进 行 了 比较 和 评 价 。 TL 并
【 关键词 】Maa;iaBs;cvxD EMai BD LC M tbVs lac te ;D ; tx ;L ;O l u iA i rV 【 中图分类号】 T 3 【 P2 文献标识码】 A 【 文章编号】 10—27(060— 08 2 03 6320)5 07—0
Malb使 命 令 行 窗 口 最 大 化 , 体 调 用 如 下 : al t b t a 具 Cl mal - a
可视化 三大基本功能于一体 的 , 功能强 大、 操作简单 的语言 , 是

[重点]MatrixVB举例

[重点]MatrixVB举例

MatrixVB举例Matlab与VB混合编程之一数据类型(转载)Matlab与VB结合开发有多种方式,其中利用MatrixVB是实现无缝连接的一种不错的方法,本文对其做较为详细的介绍.一、什么是MatrixVB?MatrixVB是MathWorks针对Visual Basic提供的一个Matlab库,为Visual Basic提供了强大的功能扩展.它可以弥补Visual Basic 内建数学函数的不足,使用户更容易去开发计算应用方面的程序代码,它富有Matlab绘图的强大功能,数理统计功能,矩阵运算功能.让Visual Basic也能很轻易地绘出一些数学函数的图形,实现对大量数据的方便处理。

1 、MatrixVB函数库的功能库中含有600多条Matlab的基本功能函数,可以在VB中直接调用而不必考虑安装庞大的Matlab,这些函数基本上可以满足数据处理需要,主要包括:一维和二维的FFT、线性方程求解、矩阵的奇异值分解、线性规划与二次规划、插值与多项式拟合、绘图等函数.2 VB中调用MatrixVB的步骤1)、安装MatrixVB2)、引用MatrixVB组件.打开VB创建一个标准工程,打开“工程”菜单“引用”项,找到MMatrix,在前面的方框中划勾,即将MatrixVB 组件库添加到工程中(如果在列出的可引用项中找不到MMatrix,可以按下浏览按钮进行浏览查MMatrix,找到后选取即可),然后便可以在VB工程中直接使用MatrixVB提供的函数.二、MatrixVB支持的数据类型除了VB所支持的类型外,引用Mmatrix还又增加了一种矩阵类型的数据,给图象处理和矩阵的运算提供了方便。

1、矩阵类型的生成。

1)、由数组直接生成。

例:Dim a(0 To 1, 0 To 2) As DoubleDim b As Varianta(1, 1) = 3a(1, 2) = -5b = mabs(a) //生成矩阵。

VB与Matlab混合编程的研究

VB与Matlab混合编程的研究

第25卷第1期2007年1月北京工商大学学报(自然科学版)Journal of Beiji ng Technology and Business University(Natural S cience Edition)V ol 125N o 11Jan.2007文章编号:1671-1513(2007)01-0038-04VB 与Matlab 混合编程的研究梁新成, 黄志刚, 朱 慧(北京工商大学机械自动化学院,北京 100037)摘 要:较系统地总结了VB 与M atlab 调用的原理和方法,给出了一些实例,通过这些方法,可使VB 的可视化界面和M atlab 强大的计算及绘图功能得以实现,从而提高编程的效率,缩短软件开发的周期.关键词:Matlab;VB;ActiveX;DDE;无缝链接中图分类号:TP 131 文献标识码:A 收稿日期:20061101作者简介:梁新成(1978)),男,陕西华县人,硕士研究生,研究方向为机械制造及自动化;黄志刚(1966)),男,上海人,副教授,博士,主要从事车辆工程、农产品加工及贮藏工程的研究.V isual Basic(以下简称VB)语言是M icrosoft 公司开发的新一代面向对象的编程工具.它既是一种编程语言,同时也是一个强大的集成开发环境,利用它可以编写出具有各种风格且界面友好的软件产品.它继承了Basic 简单、易用的特点,并具有可视化、面向对象、部件技术、事件驱动等一系列特性,成为Windows 环境下最快捷、便利和通用的开发工具.作为可视化编程的先驱和典范,其所展现的可视化风格,已经成为诸多可视化集成开发工具的参考标准.Matlab 是M athWorks 公司在20世纪80年代开发的科学计算软件,经过不断地完善和发展,目前Matlab 已经成为涉及多学科、多领域的计算和分析平台.Matlab 编程代码很接近数学推导格式,简洁直观,符合人们的思维习惯,所以编程非常方便.由于VB 提供的计算和绘图函数有限,M atlab 创建图形用户界面的能力相对较弱,因此用VB 编写界面,用Matlab 作为后台运行程序,使两者相得益彰.1 VB 和Matlab 混合编程的方法和算例由于Matlab 本身只提供了Fortran 、C 语言的接口程序,所以无法直接实现VB 对Matlab 的调用.故Matlab 与VB 混合编程中需要解决的关键是如何实现在VB 中调用Matlab.Matlab 与VB 混合编程的方法主要有下面4种.111 ActiveX 技术ActiveX 技术是以组件对象模型(component object model,COM)技术为基础的一种应用程序开发技术和体系结构的总称,它是Microsoft 公司提供的一种用于模块集成的新协议,它允许应用程序或组件控制另一个应用程序或组件的运行.M atlab5.0以上的版本均支持ActiveX 的嵌入.因为VB 支持ActiveX 自动化控制端协议,Matlab 支持ActiveX 自动化服务器端协议[1],所以VB 和Matlab 的通信有两种:一种是自动化服务器,另一种是自动化控制器.本文重点探讨VB 如何通过ActiveX 接口将M atlab 作为VB 的一个ActiveX 部件,实现数值计算和图形显示.要实现这种功能,用户首先必须获得M atlab ActiveX 对象在系统注册表中定义的名字$M atlab.Application.在所编写的程序中必须有如下的代码:Dim Matlab as ObjectSet.Set Matlab =CreateObject (/Matlab.Applica -tion 0),M atlab.Application 对象主要有3个函数,具体如下:1)Function Execute (Command as String )as String.VB 可执行一条由Command 字符串决定的M atlab 指令或在M atlab 的工作空间调用M 函数文件,在屏幕上显示图形或计算结果.2)Sub GetFullM atrix (Matr -Nam e as String,Workspace as String ,Var -Real()as Double,Var -38Imag()as Double).通过GetFullMatrix 方法,VB 从指定的M atlab 工作空间中获取指定变量名的矩阵数据.3)Sub PutFullM atrix (Matr -Name as String,Workspace as String,Var -Real()as Double,Var -Imag()as Double).VB 可以将指定变量名的矩阵数据保存到M at -lab 的工作空间中去.下面的简单例子通过ActiveX 技术实现VB 对M atalb 的调用.在VB 下创建工程,给窗体加上两个控件.一个控件是text1,将其属性中的text 项设置为空;另一个控件是comm and1,将其属性的cap -tion 项设置为result.程序的代码如下:Private Sub Command1-Click()Dim result as String Dim Matlab as ObjectSet M atlab=CreateObject(/Matlab.Appl-ication 0)Result=Matlab.ex ecute(text1.T ext)End 运行后,在tex t1中输入如下代码:[x,y ]=meshgrid(-3:.125:3); z=peaks(x,y ); meshc(x,y,z); g rid on;程序的运行结果见图1.图1 A ctiv eX 方式运行结果112 DDE 动态数据交换M atlab 从V41x 开始支持DDE (dy nam ic data exchange),最典型的是LabVIEW 对DDE 的使用.但从V51x 以后,Matlab 对DDE 的支持就没有再更新.DDE 的功能没有ActiveX 强大,但它比ActiveX 易于实现.它随着Windows 的应用而发展起来,是在Window s 环境下支持客户服务器计算模式的重要技术之一.因为VB 支持DDE 客户端功能,M at -lab 提供DDE 服务器功能,所以通过DDE 方式可以实现VB 程序对Matlab 的调用.DDE 功能函数可以由应用程序提供,也可以由M atlab 引擎库提供.VB 应用程序首先通过确定服务器名和主题,唯一地确定会话.在会话期间VB 应用程序为客户端,M atlab 为服务器端.两者会话的示意如图2.图2 DDE 通信机理示意DDE 方式基于Windows 的消息机制.DDE 服务器是一个维护其它Windows 程序可能使用数据的程序,DDE 客户则是从服务器获得数据的程序.DDE 对话由客户程序发起,客户程序将一条称为WM )DDE )INIT IAT E 的消息发给当前运行的所有Window s 程序,这条消息指出客户程序所需要的数据类别,拥有这些数据的DDE 服务器可以响应消息并开始会话[2].DDE 只是一种通信方式,它不会启动M atlab 软件,所以DDE 方式运行时M atlab 必须打开,否则程序无法运行.下例将实现DDE 通信方式.在VB 下建立工程,然后添加两个TextBox 控件,3个Label 控件,一个Com mand 控件,一个Im age 控件.输入如下的代码,然后编译成.EXE 文件后即可.此编译文件提供了M atlab 的运行环境,在指令输入区可输入任何M atlab 指令[3].程序代码如下:Private Sub Command1-Click()TextInput.LinkMode=vbLinkNoneTextInput.LinkTopic=/MATLAB|Engine 0TextInput.LinkItem=/EngEvalString 0TextInput.LinkMode=vbLinkM anual string =TextInput.T ex tTextInput.LinkEx ecute stringTextInput.LinkMode=vbLinkNoneFigText.LinkM ode=vbLinkNoneFigText.LinkTopic=/MATLAB|Engine 0FigText.LinkItem =/EngFig ureResult 0FigText.LinkM ode=vbLinkManual FigText.LinkRequestIf (FigT ext.Text=/yes 0)ThenImage1.Picture=Clipboard.GetData()ElseImage1.Picture=LoadPicture39第25卷第1期 梁新成等:V B 与M atlab 混合编程的研究End IfT ex tOutput.LinkMode=vbLinkNoneT ex tOutput.LinkTopic=/MAT LAB|Engine 0T ex tOutput.LinkItem=/EngStringResult 0T ex tOutput.LinkMode=vbLinkManualT ex tOutput.LinkRequestT ex tOutput.LinkMode=vbLinkNone End Sub程序运行结果见图3.图3 DDE 方式运行结果113 MatrixVB 插件M atrixVB 可实现M atlab 与VB 的无缝链接.所谓无缝链接就是应用程序实现其功能时完全脱离M atlab 的工作环境.它主要是利用Matlab Add-in 把M atlab 函数做成动态链接库形式,然后由VB 调用来实现.动态链接库的生成、调用和调试是这种方法的关键.M atrixVB 是M athWorks 公司为VB 开发的插件,它包含了600多条M atlab 的基本函数,插件增强了VB 绘图和计算的函数集合.它包括基本的数学运算和功能强大的信号处理、线性代数、串运算及图形图像处理功能等,用来补充VB 本身内建函数和图形处理的不足.为了防止计算机在识别M a -trixVB 和VB 的运算符时发生冲突,M atrix VB 在定义运算符时做了一些变化.VB 与M atrix VB 中的运算符号区别如表1[4]:表1 VB 与MatrixVB 的运算符号Visual BasicM atri x VB Visual BasicM atrixVB a+b plus(a,b)a \b ldivide(a,b)a-b minus(a,b)a^b pow er(a,b)a @b mti m es(a,b)b-a uminus(a,b)a/brdivide(a,b)a M od bmmod(a,b)安装MatrixVB 后,打开VB,点击工程y 引用,然后选中M Matrix 后就可以在VB 中使用此插件.下面的程序通过M atrix VB 实现VB 对Matlab 的调用.程序的运行代码如下:Private sub Form -Load()ax =vbaxes(picture1.hWnd) plot(randn(256,4))End程序运行结果如图4.图4 M atrix VB 方式运行结果114 动态链接库从M atlab615开始[5],M atlab 提供了COM 编译器.它是Matlab 编译器的扩展,能够把一个和多个M 文件转换、编译成COM 组件.因为M atlab 编译产生的COM 对象都是DLL 文件,而VB 可以直接调用DLL,所以应用DLL 可实现VB 对Matlab 的调用.具体步骤:在计算机装有VC++或C 的前提下,在Matlab 的命令窗口运行comtool 指令.选择新建工程y 给工程加入M 文件或MEX 文件y 编译;之后再在VB 下新建工程y 添加所生成的动态库y 添加控件y 给相关控件输入代码y 运行即可.M 文件必须以function 关键字开头,不能是脚本文件,更详细的内容请参阅文献[6].2 几种方法的比较利用ActiveX 进行VB 和M atlab 的交互通信时,所采用的Matlab 语句是直接使用Matlab 提供的函数和图形库命令.该方法编程效率高,但程序的执行必须在Matlab 环境下,这样会占用内存,使程序的执行速度受一定影响.DDE 方式运行时,必须打开M atlab 的命令窗口.程序编码简单,但占用系统资源多,效率低下,功能相对较弱.与ActiveX 的区别是,DDE 必须预先打开Matlab,而ActiveX 可自动打开Matlab 软件.MatrixVB 把与Matlab 相似的语法和函数嵌入到VB 中,这种方法比较简单,编程的效率高.但由于仍采用解释执行的方式,因此执行的效率低,难以40北京工商大学学报(自然科学版) 2007年1月进行实时处理.与Matlab 相比,MatriVB 包含的函数少,没有M atlab 的功能强大.把Matlab 文件编译成VB 可以执行的dll 文件,执行的效率高,但当M 文件一旦编译成功之后,其功能就不能变化,所编程序的数据交换能力弱.总之,以上各种方法皆有利弊,应根据实际情况进行选择,才能更好地发挥两者功能.3 结束语通过对Matlab 和VB 的混合编程,可以将VB 开发的界面与Matlab 强大的计算和显示功能融为一个整体,使开发的程序周期缩短,编程效率得以提高.参考文献:[1] 谭炎,张凌燕.M atlab 与V B 混合编程研究[J].微计算机信息(管控一体化),2006,22(53):248249.[2] 高剑.M atlab 与V B 混合编程方法[J].微机发展,2003,13(3):9192.[3] 张志涌.精通M AT L AB6.5[M ].北京:北京航空航天出版社,2003.[4] T he MathWor ks Inc.M atr ix VB Guide [Z ].T he M ath -Wor ks Inc,2000.[5] 董维国.深入浅出MA T LAB7.x 混合编程[M ].北京:机械工业出版社,2006.[6] 李俐玲.V B 与M atlab 相结合混合编程的研究[J].绵阳师范学院学报,2004,23(5):2628.RESEARCH OF MIXING PROGRAM OF VB AND MATLABLIANG Xin -cheng, H UANG Zh-i gang, ZHU Hui(College of Mechanical Engineer ing and Automation ,Beijing Technologyand Business Univer sity ,Beij ing 100037,China)Abstract :This paper described generally methods and principle of VB how to transfer M atlab.T hrough the gaved ex amples,w e can turn the visual interface and the powerful function of M atlab .s calculating and ploting into reality.T hat w ould enhance the efficiency of programm ing ,and shorten the period of empoldering softw are.Key words:Matlab;VB;ActiveX;DDE;Link w ith no slot(责任编辑:檀彩莲)(上接第31页)DESIGN OF SMALL NETWORK OF INTELLIGENTNODE ON CANBUSXING Liang, ZHANG Li, M ENG Chun -ling(College of Mechanical Engineer ing and Automation ,Beijing Technologyand Business Univer sity ,Beij ing 100037,China)Abstract:CANbus is one kind of Local Bus Technology and mainly used in Data Link Layer and Phys -ical Layer,but the protocol of application layer must be added to realize the material function.De -viceNET and CANopen are most w idely in protocols of application layer,but these protocols are verycomplicated and more fit for large node net.T he technical specification and trait of CAN bus is sim ply introduced in this paper,and it makes a kind of desig n for protocol of application layer in sm all CAN -bus net.Key words:CANbus;protocol of application layer;node(责任编辑:檀彩莲)41第25卷第1期 梁新成等:V B 与M atlab 混合编程的研究。

VisualStudio与Matlab实现混合编程

VisualStudio与Matlab实现混合编程

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混合编程的凝汽器智能决策系统

so h w o r s l An t e u c i s f f e ut s. d h f n t on o da a t qu id、 a ed er e s v an e por ar co pl e by h c d x t ed e m etd t e om munc t VB ia i on wi SQ L t h S v Da a s erer t ba e,S h tda a i r er a d O t a t s ef ed n m a age ef ct el n d fe i y v Ke wo d :on y r sc den erautdign i S L Se v r Daaba e, M a lb s , l a oss,Q r e t f s VB, t a
《 业 控 制 计 算  ̄ ) 0 0年 第 2 工 ) 1 2 3卷 第 6期
基于 V B与 Mal 混合编程的凝汽器智能决策系统 tb a
滕 丕 忠 司 丽 丽 陈 曦 ’
( 山东鲁 能 慧通 科技 有 限责任 公 司, 东 济 南 2 0 0 ; 1 山 5 1 0 2 山 东 阳光 工程 设计 院有 限公 司 , 东 济 南 2 0 1 ) 山 5 0 3
V B与 Malb和数 据 库 结 合 使 用 , 仅 可 以 实 现 数 据 、 形 t a 不 图 和 界 面 的有 机 结 合 , 且可 以 实 现数 据 的有 效 管 理 。 文 即采 用 而 本 该 方 法 开发 了具 有 在 线 实 时 数 据 采 集 、 速 故 障 诊 断 、 断 结 果 快 诊 图 示 、 作 决 策 指 令 表 达 , 时 具 有 运 行 历 史 数 据 查 询 、 存 和 操 同 保 导 出 等多 功 能 的凝 汽 器 智 能 决 策 软 件 ,直 接 服 务 于 运 行 操 作 的 技术 指导 和 车 间 日常 生 产 管 理 工 作 。可 确 保 汽 轮机 凝 汽 系 统 随 时运 行 于 最 佳 方 式 , 持 最 好 状 态 , 而 大 幅度 提 高 汽 轮 机 组 整 保 从 体运 行 的 安 全 性 和 经 济 性 。

VB与MATLAB混合编程研究与实现

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。

VB与MATLAB混合编程及其在叶片寿命预估中的应用

VB与MATLAB混合编程及其在叶片寿命预估中的应用

77 7 0i
76 7 7
l3
4 38 4 84 适 80 5 07
10l 9
l 00 9 l00 9 1 00 9 1 00 9
1 10 9
l 26 9 j 9霉 霉 l 11 9 l 9 3
i45 7
应 用 技 术
●I
V B与 MA L B混合 编程 及其在 叶片寿 命预估 中的应 用 T A
张 国强 何 士文
(. 1 北方 工业 大学控 制 工程 北京 1 04 : 2北 京北 重汽轮 电机 有 限责任 公司 00 3
北京 104 ) 0 0 0
[ 摘 要 ] 介绍 v B与 M T A A L B混合编 程 的一 种方 法 。利 用 V B编写 人机 交互 界面 , 利用 M T A A L B的神 经 网络 工具箱 , 建立基 于 B P神经 网络的 叶片寿 命预 估系 统。通 过将 叶片 的 初始 信息 输入 系统, 到汽 轮 机末 级 叶片 寿命 的 预估 值 。其通 用 的 B 得 P网络 构建 、训 练和 测试 工 具, 少 了开发 人员 与 M T A 减 A L B语 言开发 的 工作 量 。经 验 证 ,该系 统 灵 活 、 准确 ,具 有 实用 性 。 [ 关键 词] 汽轮 机 叶 片 寿命预 估 神经 网络 V M T A B ALB 中图分类 号 :64 1 3 U 6. 1 文献标 识码 : A 文章 编号 :09 9 4 (09 3~ 39 0 10— 1X 20 ) 50 2— 2
的数据 类型 为 自动化 数 据, 与具体 的语 言无 关 。例如 , S R是 一个 宽字 符 串 BT 类 型, 为一个 自动 化类 型, 作 它与 Vs a a i 中保存 的字符 串类 型相 同, iu lB s c 尽 管 声 明和操作 的细节 又控 制器 指定 , 任何O E 但 L 适用 的控制 器都 应该支 持这 些 数 据类 型, 该方法 接 收字符 串命令 并在 ̄ TA 中执 行, L LB A 将结果 已字 符串形 式返 回 。其 调 用 的 格 式 为 : [u ]S R r s i =x c t (i ]B T “ o m n  ̄ o tB T e u t E eu e [n S R cm a d Cm a d 指定 的N T A 语句 。服 务器将 输 出返 回到 字符 串 r sl 中, om n 为 ALB eu t 该 字 符 串还 可 以包 含任 何 警 告 或错 误信 息 。 利用 O E 术, L技 可是 使用G t u la rx u F l ̄ t i 函数将 MT A eF lM t i 和P t u la rx ALB 擅 长 的矩 阵计算 与 V B结 合, 实现 V B与 M T A A L B件 的矩阵数 据 的传递 。 V sa a i 为客户 程序 ,e F lM t i 调用格 式为 : iu lB s e G t u 1a rx V i e F l M t i ( i ]B T a n m , i ]B T o k p c , o d G t u 1 a r x [n S R v r a e [n S R w r s a e

VB与Matlab混合编程的图像处理研究

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制作的COM组件实现二者混合编程

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混合编程实现控制系统分析
1 Vi aBac MA L B 据 传 递 关 系如 下 : . 5 s l s与 u i T A 数
Mi oot c sf r 把所有 以COM ( 小型快 速可重 用组件C mp n n Obet o o e t jc Mo e ) 为 基 础 的 技 术 统 称 为 Acie d1 t X技 术 。 A t e v ci X自 动 化 v ( uo t n)是 A t e A tmai o ci X的一个 协议 .它 允许 应用程 序活组 件控制 v 另一个应用程 序或组件运 行 。由于 V sa B s 支持 A t e 1 iul ai c ci X ̄动化控 v 制协 议 ,MA L B T A 支持 自动 化服 务 器 端协 议 ,因此 如 果建 立 一个
1 Vs a a i与MAT AB iu l sc B L 混合编程
11 V s a B s 与MAT AB 结合 . i l ai u c L 的
G t l tx方法 将MA L B 的一 个矩 阵变 量 传送  ̄ V sa e u Ma i Fl r TA 中 li l J u B s 指 定 的 数 组 中 。 vma e MA L B 的 矩 阵 变 量 名 , ai c a m为 TA 中 wok pc ̄ 定 了 该 矩 阵 所 在 的 MAT AB工 作 区 , xe l Vi a rsae L ra是 s l u B s 程序中的实部数组 ,x g ai c i 是指V saB s 程序中的虚部数组 。 ma i l ac u i
步骤 ,轻松实现控制系统的计算机辅助分析。
1 Acie 自动 化 技 术 . 2 t
【 1 S R wo k p c , i T r s ae nB 【 】 T r g i BS R s i ) n tn

VB和matlab混合编程在减速器优化设计中的应用

VB和matlab混合编程在减速器优化设计中的应用
T kigg o d a tg fVB a dmalb a d og n iig tet o l rp ryc n eplie n o lctd po e sn ot r ih h sfin l a n o d a v na eo n ta n ra nzn h wotosp o el a x otd a y c mpiae rc sigsfwaewhc a re dy
1 V B和 MA L B数 据 交换 T A
Malb可 以 作 为 A f e 自动 化 控 制器 去 操 作 其 它 应 用 程 序 . t a c vX i 也
2 . 确 定 设 计 变 量 .2 2 计算 总 中 一 a涉 及 的 独 立 参 数 有 m m2z ,i B,故 取 设 计 0距 t n 、、 、 、
i t r ci e i t r c .He e i n e a l i h u e h o o ie p o a n e a t n e f e v a r s a x mp e wh c s d t e c mp st r g mmi g o t b a d VB t e n o t m e i n o p e e u e . r n fmal n o g ta p i a mu d sg f e d r d c r s
在 开 发 图形 用 户 界 面 ( I方 面 卓 越 表 现 而 被 誉 为 “ GU ) 可视 化 开 发 工 具
(/ n , 传 动 比 i齿 轮 的 齿 宽 系数 , 齿 轮 4 r mi) 总 , 大 5号 钢 正 火 HB 17 =8— 2 7, 齿 轮 4 0 小 5号 钢 调 质 HB 2 8 2 5 总工 作 时 间 不少 于 1 =2~5 , O年 。
( c o l f e h nc l n i e r g Y n teU v ri Jn z o b i 4 4 2 ) S h o c a ia gn e i , a g z n e s y,i g h u Hu e , 3 0 3 oM E n i t

基于VBMATLAB混合编程数据库图形显示方法论文

基于VBMATLAB混合编程数据库图形显示方法论文

基于VB与MATLAB混合编程数据库图形显示方法摘要:针对以往数据库中图形显示方法工作量大,数据库结构复杂,或者数据文件庞大,造成在vb环境下开发的应用程序执行效率低等问题,提出了基于vb与matlab混合编程的数据库图形显示方法,采用matrixvb插件进行数据库中数据图形显示的开发。

在实验数据库中的应用表明,方便了对库中数据的查询、分析与使用,提高了效率,同时优化了数据库结构。

abstract: it is difficult to display the data in the database because of complex structure or large data file. it is inefficient for the program based on vb to display the data in the database. we put a new figure display method based on vb and matlab combined programming.we use matrixvb to display. it is convenient for data query and analyzing in the database. it had been raised the efficiency and optimized the structure in the database of characteristic.关键词:数据库;图形显示;混合编程;matrixvbkey words: database;figure display;combined programming;matrixvb中图分类号:tp392 文献标识码:a 文章编号:1006-4311(2012)32-0196-020 引言实验数据库系统采用sql server,并使用vb进行应用程序的开发,主要任务是存储实验中积累的实测数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*打开生成的安装包中的
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
22 /23
总结
把Matlab的m文件编译成VB可以执行的.dll文件,
MATLAB与VB混合编程
MATLAB是MathWork公司于1984年推出的数学工具 软件,其科学计算功能的强大和开放式的开发思想使其成 为当今最为流行的、最为优秀的科技应用软件之一,在数 值分析、科学计算、算法开发、建模和仿真等方面具有独 特的优势。支持对通信系统、信号处理、图像处理、小波 分析、鲁棒控制、系统辨别、非线性控制、模糊控制、神 经网络、优化理论、样条、商用统计分析等30多个不同领 域的内容的处理和分析。但其用户界面的设计不如VB方便 ,解释执行的运行环境使其开发的程序不能离MATLAB独 立地进行发布。因此通过MATLAB与VB混合编程,利用 VB作为前端开发工具进行应用程序开发的同时,将应用程 序中较为复杂的数学计算交由MATLAB来完成,从而更加 地充分发挥两者的优势。
15 /23
(2)VB程序发布 filemake project1.exe Add-Ins Add-In Manager,点击Package and deployment Wizard,并选中Loaded/unloaded Add-Ins Package and deployment Wizard,按提 示进行操作,直至打包发布完成。
MatlAB2013a版生成COM组件的方法步骤:
1、同MATLAB7.1版安装路径不能有空格或中 文,编写m函数文件,选择C/C++编译器 2、在命令窗口运行deploytool。输入project名 称,Type选项选择Generic COM Component。
20 /23
3、为COM组件添加类及类的输出函数,然后 点击编译。

14 /23
5、应用程序发布
(1)COM组件打包
在本地使用的话,MATLAB会自
动注册 COM组件,无需发布;但
如果要在没有安装MATLAB的计 算机上使用,安装包就需添加
MATLAB运行库MCR。打开创建
的COM工程,点击Component Package Component选项,选 中Include MCR,点击create。
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。
17 /23
18 /23
实现步骤(二) Matlab2013a 版
MATLAB7.1及以前版本生成COM组件的命令是comtool,从 R2006a(7.2)开始换成了deploytool。2013b版和2014a 版利用deploytool生成COM组件时都会出现如下图所示的 错误:
19 /23
13 /23
编写VB程序代码 Dim Matlab As testCOM.testCOMclass Private Sub Form_Load() Set Matlab = New testCOM.testCOMclass End Sub Private Sub Command1_Click() Call Matlab.plotcur Picture1.Picture = Clipboard.GetData() End Sub Private Sub Command2_Click() Picture1 = Nothing End Sub
5 /23
Dim Matlab As Object Private Sub Form_Load() Set Matlab = CreateObject("matlab.application") End Sub Private Sub Command1_Click() Dim strcommand As String strcommand = "x=0:0.01:2*pi;y=sin(x);set(gcf,'Visible','off');" strcommand = strcommand + "plot(x,y);print -dmeta;close(gcf);" Matlab.execute (strcommand) Picture1.Picture = Clipboard.GetData() End Sub Private Sub Command2_Click() Picture1 = Nothing End Sub
执行的效率高,可以实现脱离MATLAB和VB环境而 独立运行。但当COM组件一旦编译成功之后,m文件 的功能就不能变化,所编程序的数据交换能力弱。
23 /23
谢谢!
24 /23
C:为自己实际的MatlAB安装目录
10 /23
(2)安装C++编译器 在MATLAB命令窗口里输入:mbuild –setup命令

Please choose your compiler for building standalone
MATLAB applications:
Would you like mbuild to locate installed compilers
[y]/n? n
有个让选y/n的matlab自动定位编译器位置的提示 时 要选n , 然后手动指定Microsoft Visual Studio文件夹所 在位置,选择安装VC++6.0编译器。
11 /23
(3)创建COM组件工程
在命令窗口中输入comtool,出现com组件builder。选择
FILENew Project选项。 Component name选项中输入组件名称:test (*组件名不能与m文件重名) (4)添加m文件 (5)生成动态链接库 单击build Com Object 在创建的COM工程下会 生成相关的组件。
4 /23
Dim Matlab As Object Private Sub Form_Load() Set Matlab = CreateObject("matlab.application") End Sub Private Sub Command1_Click() Dim strcommand As String strcommand = "x=0:0.01:2*pi;y=sin(x);plot(x,y)" Matlab.execute (strcommand) End Sub Private Sub Command2_Click() Matlab.execute ("close gcf") End Sub
9 /23
3、生成COM组件
(1)设置系统路径
我的电脑属性 高级 环境变量 系统变量 Path选项,增加以下路径:
头文件:C:/MATLAB7/extern/include;
库:C:/MATLAB7/extern/lib/win32/microsoft/msvc60; DLL:C:/MATLAB7/bin/win32
6 /23
利用ActiveX进行VB和Matlab的交互通信时,
所采用的Matlab语句是直接使用Matlab提供的
相关文档
最新文档