利用MatrixVB实现MATLAB与VB溷合编程简易教程_第1页
利用MatrixVB实现MATLAB与VB溷合编程简易教程_第2页
利用MatrixVB实现MATLAB与VB溷合编程简易教程_第3页
利用MatrixVB实现MATLAB与VB溷合编程简易教程_第4页
利用MatrixVB实现MATLAB与VB溷合编程简易教程_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MatrixVBMatrixVBMATLABVisualBasic语言的混合编程技术。VBMatrixVBVBMatrixVBMATLABVisuaMATLABC/C++、FortranVsiualBasic语言的接口,要想实现MATLABVisualBasic的混合编程能够通过下列途径来实现。通过ActiveX方式VBVCActiveXMATLAB来说集成与调用方式是同5MATLABActiveX的客户端使用办法。二是在VB环境下能够通过ActiveX自动化接口将MATLABVisualBasic语言的一种ActiveX部件调用。MATLABActiveXMATLAB工作空间执行MATLAB5MATLAB作为服务器VisualBasicMATLAB作为服务器客户端的。MATLAB中.MMATLAB环境,运VBMatrixVBMatrixVB是由第三方(mathtools公司)COMMATLAB相似的函数与VBVBVB自己MatrixVBMATLABVisualBasic中完毕矩阵运算与图形绘制显示等功效,这种办法使用起来简朴,编程效率较高。MatrixVB函数库的功3DDEVBMATLABMatrixV环境设立在VB应用中引入安装8.8MWindows95WindowsNT4.0在安装盘上找到然后在“开始→运行”regsvr32mMatrix.dll7-17-1注册VB开发环境并建立“原则EXE”7-27-2EXE单击“打开”7-37-3VBproject下拉菜单中单击References,在弹出的对话框中选中MMatrix项目,系统将加载MatrixVBMMatrix.DLL7-4所示。7-4MatrixVBVBMatrixVMatrixVBVB中能够直接在开发环境的“立刻窗口”MATLAB命Windows选项在开发环境中得到“立刻窗口”7-5所示。7-5VB例如,在“立刻窗口”7-6所示。7-6VB立刻窗口中产生矩阵MatrixVBFigure17-77-77-87-8Form1Click44PrivateSubCommand1_Click()A=eye(4,4)End7-97-9VBMatrixVBMatrixVBClick事件解决过PrivateSubCommand1_Click()End7-107-10MatrixVBCOM服务器,因此必须在操作系统中注册后方可使用,注册时可使用以下命令行语句:regsvr32如果目的操作系统是Windows95,还必须公布另外两个OpenGL文献即opengl32.dll与glu32.dllWindows98/Me/NT4/等环境下,则不需要安装这些文献。MatrixV的矩阵操作matricVBVBdouble类型。VBMatrixVMATLABVBMATLABVARIANTDimxAsVBMatrixVB通过函数mabs转化为MatrixVB的矩VBmabsMatrixVB的矩阵,格式为:MATRIXVB_MATRIXMatrixVBMATLAB窗口中那样,不需要事先定义,VB_ARRAYVBVB常量与变量。7-8commandClick事件的解决过程代码为:PrivateSubCommand1_Click()DimA(1to3,1to3)AsdoubleDimi,jAsintegerfori=1To3forj=1ToA.showEndVBAmabsMatrixVB矩B并将其显示出来。7-117-11mabsMatrixVB通过MatrixVB340VB支持的两种类型为MatrixVariant3×40矩阵。DimmatAsMatrixDimxAsVariantSetmat=zeros(3,4) '赋值为3×4的0矩阵Setx=zeros(3,4) '赋值为3×4的0矩阵通过函数CreateMatrixCreateMatrix(p1p2…pnp1,p2,…,pn为矩阵的值。ReshapeCreateMatrix所创立的函数的维数,格式为:XCreateMatrix创立的矩阵,rows为指定的行数,cols为指定的列数,337-127-12CreateMatrixMatrixVBMatrixVB矩阵,但是这种方式只能对矩阵元素进行写操作,其格式犹VB的数组元素同样,例如:A是一种二维矩阵则下列代码:ij1MatrixVBrN、iNX中的每个元素的实部和虚部,其中NMatrixVBAa=A.r1(i+1)读操作Ai12i+1VBa。BiN的方式来访问。X.simpleMatrixVBXVBX为只有一种元素的矩阵状XVBDouble类型,如:DimSAsDoubleshowMatrixviwer窗口显示矩阵内容的功效,格式为:rows()、cols()、dims()、dimension(n)n维数的个数VBintegerA,下面的VB中的变量。 d=dimension(1) commandClick事件的解决过程。代码为:PrivateSubCommand1_Click()'MatrixVBDimxrAsdoubleDimxiAsdoubleDimiAsintegerDimrowAsintegerDimcolAsintegerDimdimsAsintegerA=zeros(333列的零矩阵fori=1To3forj=1Toxr=A.r2(2,2)22列的值Print行数为:";Printrow;Print列数为:";Printcol;PrintPrintEndcommand17-137-147-137-14vbsave命令将矩阵写入磁盘文献中,并将数据文献中保存的文献读到程序中。语法格式分vbsavefilenamevariableAmagic.txtBvbsave"magic.txt"ADos方式打开,如:DimfidAsVariantDimAAsVariantDimBAsVariantA=magic(4)fid=fopen("one.txt","w")Callfprintf(fid,"%g\n",A)Callfscanf(fid,"%g\n",B)fclose(fid)5MatrixVB来实现,并增加矩阵的行列式运算,LUProject1StandardEXE7-157-15VB7.27-167-167-17-1 DimmatAsVariantDimiAsIntegerDimjAsFormLoadPrivateSubSetmatzeros(4,4)4×4Combo1.AddItem"转置"Combo1.AddItem"逆矩阵"Combo1.AddItem"特性值"Combo1.AddItem"LU分解"Combo1.AddItem"SVD分解"Combo1.AddItem"行列式"i=j=1EndSubCommand2Click事件解决过程编写代码。PrivateSubCommand2_Click()DimrowAsIntegerDimcolAsIntegerDimtempAsDoubleLabel1.Caption="目前行,列为"&CStr(i)&","&CStr(j)mat(ij)CDbl(Text1.Text)mat中temp=CDbl(Text1.Text)Printtemp;'4时输出结束IfjMod4=0Theni=i+j=1j=j+1EndIfText1.Text=Ifi=4i=j=Text1.Text=MsgBox"输入已经结束"Command2.EnabledFalseExitSubEndIfEndSubCommand1Click'mat矩阵进行对应的操作并将成果输出PrivateSubCommand1_Click()IfCombo1.Text转置ThenA=transpose(mat)ElseIfCombo1.Text逆矩阵ThenB=inv(mat)ElseIfCombo1.Text特性值ThenC=eig(mat)vC(1)'C(1)为特性值向量,C(2)ElseIfCombo1.Text"LU分解ThenD=lu(mat)lD(1'D(1)为下三角矩阵,D(2)为上三角矩阵,D(3)为交换矩阵ElseIfCombo1.Text"SVD分解Esvd(mat'E[2]为对角线为奇异值的矩阵,E[1],E[3]为正交矩阵v=E(1)ElseIfCombo1.Text行列式ThenF=det(mat)PrintF.Simple将行列式的值输出到窗口上EndIfEndCommand4Clicki=j=1IfCommand2.Enabled=FalseThenCommand2.Enabled=TrueEndActiveXMatrixVB使得代码简洁,它不需要在不同的MATLAB的环境即可得到运算的成果。LUX(n)MatrixV的运算符VB不支持运算符的重载,例如“+”MatrixVB组件包中提供了一VBMatrixVB矩阵进行算术运算,VB支持的数据类型进行相似的运算,或者进行两者的混合运算。因此这些函数相称VBMatrixVB组件包中其它函数同样对这些函数进行调用。MatrixVB运算符函数分为算术运算符函数、关系运算符函数和逻辑运算符函数等。MatrixVBVBMatrixVBVB7-27-2MatrixVBVBVisualMatrixVBabaaaaModabaa-a-aabVBMatrixVB标量矩阵,VB的运算符所起的作用是同样的,如:DimxAsDimyAsintegery=C=power(x,167-177-174.02A=CreateMatrix(1,2,3,4,5,6,7,8,B=CreateMatrix(2,2,2,3,3,3,4,4,A=reshape(A,3,B=reshape(B,3,C=power(A,CC(i,j)AA(j,i)B(j,i)次方,计算成7-18所示。7-18ABabMatrixVBVB中的数据类型(整型,浮点型)的标量,所做的运A=CreateMatrix(1,2,3,4,5,6,7,8,A=reshape(A,3,B=power(A,A27-197-192VB7-37-3MatrixVBVBVisualMatrixVBabababab假abababVBVB的运算符所起的作用是同a,bVBMatrixVB01,DimxAsintegerDimyAsintegerC=ge(x,7-207-20VB1,0A=CreateMatrix(1,2,3,4,5,6,7,8,B=CreateMatrix(2,2,2,3,3,3,4,4,A=reshape(A,3,B=reshape(B,3,C=ge(A,7-217-21abmatricVBVB中的数据类型(整型,浮点型)的标量,所做的运A=CreateMatrix(1,2,3,4,5,6,7,8,A=reshape(A,3,B=ge(A,7-227-22VB7-47-4MatrixVBVBVisualMatrixVBaAndabaEqvabaImpabnotaaOrabaXorab阵进行运算的函数。除此之外,MatrixVB还提供了大量运算函数,本节我们将介绍几个惯用的7-5所示。7-5MatrixVB函数名acbnn nFIR滤波函数,a,b为滤波器系数矩阵,c快速傅立叶变换,a用来求多项式的根,a解线性方程组,a为系数矩阵,bA=CreateMatrix(2,11,7,3,-4,5,1,8,-B=CreateMatrix(2,6,A=reshape(A,3,B=reshape(B,3,C=mldivide(A,B)7-237-23refguide.pdfMatrixVB组件包提供了一整套用于二维或三维作图的函数、颜色解决函数、图像解决函数、图像句柄解决函数及顾客界面对话框等工具。mattrixVBfiguerVB窗口中绘制VB在figur窗口中绘制图形MatrixVB组件包在该领域的应用办法。假设该曲线的方程为:7-24click事件的解决过程编写代码:PrivateSubCommand1_Click()acolon(1,1,10)产生一种序列y=times(2,power(a,2))y=plu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论