[VB.NET]VB与MATLAB接口的实现

来源:互联网 发布:通州淘宝城关了吗 编辑:程序博客网 时间:2024/05/21 14:07
VB与MATLAB接口的实现

实例说明

在本实例中,我们制作一个能够与Matlab进行交互的应用程序。程序运行结果如图78-1所示。

图78-1 运行结果

技术要点

<script type="text/javascript"><!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

l 引用Matlab库

l 执行Matlab命令

l 结束Matlab

实现过程

■ 新建项目

打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"CnMatlab",然后选择保存路径。单击"确认"。

■ 添加控件

向当前窗体添加五个Button按钮,两个Picture控件,一个Label控件,一个Hscroll控件和一个Vscroll控件。单击菜单"项目|添加引用",选中"Matlab Automation(Version5.3)Type Library"这一项。

注意:本程序只能在安装有Matlab的机器上运行。

■ 设置属性

将Label控件和Command按钮的Text属性设置为与界面一致。在此不再赘述。

■ 添加代码

Dim str1 As String

' 显示正弦图

Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click

Dim matlab As Object

matlab = CreateObject("matlab.application")

matlab.MinimizeCommandWindow()

str1 = "t=1:0.1:2*pi;y=sin(t);plot(t,y)"

matlab.Execute(str1)

matlab.Execute("print( gcf, '-djpeg', 'c:/foo')")

matlab.Quit()

matlab = Nothing

ShowPic()

End Sub

' 显示三维扇形图

Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click

Dim matlab As Object

matlab = CreateObject("matlab.application")

str1 = "sale=[100 150 400 250];pie3(sale,[0 0 1 0],{'春季','夏季','秋季','冬季'})"

matlab.Execute(str1)

matlab.Execute("print( gcf, '-djpeg', 'c:/foo')")

matlab.Quit()

matlab = Nothing

ShowPic()

End Sub

' 显示三维螺旋线图

Private Sub Command3_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command3.Click

Dim matlab As Object

matlab = CreateObject("matlab.application")

str1 = "t=0:0.1:8*pi;plot3(sin(t),cos(t),t)"

matlab.Execute(str1)

matlab.Execute("print( gcf, '-djpeg', 'c:/foo')")

matlab.Quit()

matlab = Nothing

ShowPic()

End Sub

' 显示立体球图

Private Sub Command4_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command4.Click

Dim matlab As Object

matlab = CreateObject("matlab.application")

str1 = "k = 5;n = 2^k-1;[x,y,z] = sphere(n);c = hadamard(2^k);surf(x,y,z,c);"

str1 = str1 & "colormap ([1 1 0; 0 1 1]);axis equal"

matlab.Execute(str1)

matlab.Quit()

matlab = Nothing

ShowPic()

End Sub

' 显示立体波浪图

Private Sub Command5_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command5.Click

Dim matlab As Object

matlab = CreateObject("matlab.application")

str1 = "[X,Y,Z] = peaks(30);surfc(X,Y,Z);colormap hsv;axis ([-3 3 -3 3 -10 5])"

matlab.Execute(str1)

matlab.Execute("print( gcf, '-djpeg', 'c:/foo')")

matlab.Quit()

matlab = Nothing

ShowPic()

End Sub

■ 运行程序

单击菜单"调试|启动"或单击 图标运行程序。

小结

Matlab具有数值运算方便、快捷和画图的优点。它与VB结合,能实现功能强大的程序。因此,我们利用VB.NET可以开发出很有使用价值的程序。

原创粉丝点击