正文

VB与MATLAB通信实现方案三:MatrixVB2007-07-22 22:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/emath/27753.html

分享到:



               VBMATLAB通信实现方案三

 

前言:MATLABVB接口,有使用DLL, DDE ,OLE ,ActiveX ,COM 组件等多种方法.

本文介绍的方法:

        通过使用嵌入VB的矩阵函数库MatrixVB的方法。MatrixVB是由原MathTools公司开发的第三方插件,利用与Matlab相似的函数、语法嵌入到VB中,可以象使用VB的函数、命令一样使用Matlab函数。这种方法语法和函数使用比较简单,编程效率很高,几乎完全融入VB语言,特别对图形的处理非常方便,弥补了其他方法在图形处理上的弱点。安装后,只需在打开的工程中添加MatrixVB库即可(在工程->引用对话框中选中MMatrix)。但由于其仍然采用解释执行,执行效率较低,实时运算难以实现。

       Matrix VB 下载地址:(MatrixVB 4.5注册码:
                                      Name: Demian/TNT! 
                                      S/N: DEMIAN/TNT!-4C5R-1193046-44493704)

         MatrixVB是MathWorks针对VB提供的一个Matlab库,它提供了600多个函数,包括基本的数学运算和功能强大的信号处理、线性代数、串运算及图形图像处理功能等,为VB提供了强大的功能扩展。在VB中使用该数学工具包可避免重复性劳动,从而减少开发人员实现算法和界面设计的困难。

 

做个简单的例子吧!

产生3X3的随机矩阵a = randn(3) ;求逆 b = inv(a);两矩阵相乘c = mtimes(a, b).

建立VB工程,工程中引用“MMatrix”组件包:

VB代码:

Private Sub Command1_Click()
' Get a normal random 3x3 matrix
 a = randn(3)
' Find its inverse matrix
 b = inv(a)
' Multiply (will be identity)
 c = mtimes(a, b)
' Show them all
 ShowMat a, txtRand
 ShowMat b, txtInv
 ShowMat c, txtEye
End Sub


Private Sub ShowMat(mat, where As TextBox)
 Dim m As Long, n As Long
 Dim t As String, d As String
 Dim matij As Double

 m = mat.rows
 n = mat.cols

 For i = 1 To m
  For j = 1 To n
   matij = mat.r2(i, j)
   d = Format$(matij, "####0.0##")
   d = Space$(10 - Len(d)) & d
   t = t & "  " & d
  Next
  t = t & Chr$(13) & Chr$(10)
 Next
 where.Text = t
End Sub

 

补充说明:

1.在发布基于MatrixVB的VB应用程序时,应将相应的库文件随系统一起发布。这些文件包括:v4510v.dll、c4510v.dll、ago4510.dll、msvcrt.dll、msvcirt.dll和MMatrix.dll。由于MMatrix.dll是COM 服务器,所以必须在操作系统中注册后方可使用,注册时可使用如下命令行语句:

regsvr32 mmatrix.dll

 2.COM 生成器出现以前,MatrixVB在一定的历史阶段发挥了它的作用,但COM生成器出现后,MatrixVB已经被其所取代。一般来讲,用COM生成器生成的组件会比MatrixVB小得多,调用MatrixVB库时需将MatrixVB整个载入工程,其中包括很多根本用不上的函数,而使用COM生成器就可以“量身定做”了。另外,COM生成器是一个生产工具,而MatrixVB是一个产品,所以使用COM生成器具有更大的灵活性!

3.MatrixVB提供了600多个函数,包括基本的数学运算和功能强大的信号处理、线性代数、串运算及图形图像处理功能等。安装MatrixVB后,在安装文件夹中找到refguide.pdf,这是MatrixVB应用函数指南,并且有例子,英文!

 

Edited by Guassfans    2007-07-22

阅读(10876) | 评论(5)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册