-
利用activeX实现matlab和vb的混合编程-vb_matlab_activeX.rar下载
资源介绍
利用activeX实现matlab和vb的混合编程-vb_matlab_activeX.rar
想要在vb里面直接执行matlab的代码吗?想省去编译dll文件的代码吧?
好的,activeX帮你实现这样的功能.
activeX简介: ActiveX部件是Microsoft公司提供的一种用于模块集成的新的协议,它是Visual Basic工具箱的扩充部分。在程序中加入ActiveX后,它将成为开发和运行环境的一部分。Matlab实现了ActiveX自动化服务支持,在Visual Basic下通过ActiveX自动化接口可将Matlab作为Visual Basic语言的一个ActiveX部件调用,实现VB与MATLAB间的无缝集成,该方式比较适合C/S模式,具有自动化程度高、效率高、占用资源少、数据交换能力强等优点,大大缩短了程序开发周期,优化了系统性能。
activeX运用: 使用ActiveX部件,首先必须获得Matlab ActiveX对象在系统注册表中定义的名字─Matlab.Application。在VB中创建ActiveX对象的代码如下:
Dim Matlab as Object.
Set Matlab = CreateObject
Matlab.Application对象主要有3个函数,具体如下:
(1)
BSTR Execute([in]BSTR Command)方法
接受单一的字符串(Command), MATLAB将运行命令及结果作为一个字符串返回。用于执行一个合法的MATLAB命令;
(2)
PutFullMatrix方法
void PutFullMatrix pr, [in] SAFEARRAY pr, [in] SAFEARRAY pi )
将一个指定变量名的一维或二维数组(mxArray)放入工作空间。
(3)
GetFullMatrix方法
void GetFullMatrix pr, [in] SAFEARRAY pr, [in] SAFEARRAY pi )
通过GetFullMatrix方法,从指定的工作空间检索一个完整的一维或二维的实型或虚型数组(mxArray),其实部和虚部分别存放到两个单独的Double型数组中。[2]
通过这三种方法,可以方便地利用Matlab执行命令,从VB向Matlab中输送数据或者从Matlab中获取数据。
实例举例:
1.程序功能: 给出三个变量:x=0:0.05*pi:10*pi;y=sin;z=cos
并且做出x,y,z的三维图形,并在vb的image窗口中显示,
下面是vb程序的界面,只有一个command按钮和image图片框
程序界面.jpg
下面是程序的运行结果:
程序运行结果.jpg
2.代码
Dim Matlab As Object
Dim Result1 As String
Dim Result2 As String
Dim Result3 As String
Private Sub Command1_Click()
Result1 = Matlab.Execute;z=cos")
Result2 = Matlab.Execute")
Result3 = Matlab.Execute")
Image1.Picture = Clipboard.GetData()
Call Matlab.quit '退出Matlab
End Sub
Private Sub Form_Load()
Set Matlab = CreateObject
End Sub
3.程序源程序:
vb_matlab_activeX.rar