正文

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

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

分享到:

               VB与MATLAB通信实现方案三   前言:MATLAB与VB接口,有使用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, txtEyeEnd 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 = tEnd 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

阅读(11373) | 评论(5)


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

评论

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