Matlab充分支持ActiveX自动化技术(唐章宏等,2000)。ActiveX是一门生成、使用和集成组件的技术,它允许应用程序或组件控制另一个应用程序或组件的运行。Matlab的ActiveX能够被任何可作为控制程序的Microsoft程序控制。这些程序包括Excel、VB、VC++等。利用自动化,可方便地在自己的程序中对Matlab进行控制。在VB应用程序内创建了Matlab ActiveX对象以后,就可以使用这个对象所包含的各种方法来实现对Matlab的调用。
一个自动化控制程序要获得一个自动化对象,首先要初始化并创建自动化对象,这里用到一个重要的函数CreateObject(),它返回Matlab.Application对象,用法为
Matlab.Application对象常用的有4种方法,利用这些方法在VB应用程序内可实现任何Matlab的功能。
1.BSTR Execute([in]BSTR Command)
调用Matlab执行一条由Command字符串决定的Matlab命令,同时返回一个字符串表示命令的执行情况。任何能在Matlab命令行窗口内执行的命令均可以被包括在Command字符串中。如果Command是绘图命令,则Matlab绘出的图形将显示在屏幕上。用以下程序实现
(www.xing528.com)
上述例子就是在VB程序内调用Matlab并在屏幕上画出图6.17,同时以".bmp"文件格式对图形进行了保存。
2.Void Get Full Matrix([in]BSTR Name,[in]BSTR Workspace,[in out]SAFEARRAY(double)*pr,[in out]SAFEARRAY(double)*pi)
将Matlab中的一个矩阵变量传送到VB程序的一个一维或二维数组中。其中Name指定了Matlab中的矩阵变量名,Workspace指定了该矩阵变量所在的Matlab工作区,pr是指VB程序中的实部数组,pi是指VB程序中的虚部数组。
3.Void Put Full Matrix([in]BSTR Name,[in]BSTR Workspace,[in out]SAFEARRAY(double)*pr,[in out]SAFEARRAY(double)*pi)
将VB程序的一个一维或二维数组传送到Matlab中的一个矩阵变量中。
4.void Quit()
退出Matlab,调用Call Matlab.Quit()。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。