利用MatrixVB實(shí)現(xiàn)MATLAB與VB溷合編程簡(jiǎn)易教程_第1頁(yè)
利用MatrixVB實(shí)現(xiàn)MATLAB與VB溷合編程簡(jiǎn)易教程_第2頁(yè)
利用MatrixVB實(shí)現(xiàn)MATLAB與VB溷合編程簡(jiǎn)易教程_第3頁(yè)
利用MatrixVB實(shí)現(xiàn)MATLAB與VB溷合編程簡(jiǎn)易教程_第4頁(yè)
利用MatrixVB實(shí)現(xiàn)MATLAB與VB溷合編程簡(jiǎn)易教程_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

MatrixVBMatrixVBMATLABVisualBasic語(yǔ)言的混合編程技術(shù)。VBMatrixVBVBMatrixVBMATLABVisuaMATLABC/C++、FortranVsiualBasic語(yǔ)言的接口,要想實(shí)現(xiàn)MATLABVisualBasic的混合編程能夠通過(guò)下列途徑來(lái)實(shí)現(xiàn)。通過(guò)ActiveX方式VBVCActiveXMATLAB來(lái)說(shuō)集成與調(diào)用方式是同5MATLABActiveX的客戶端使用辦法。二是在VB環(huán)境下能夠通過(guò)ActiveX自動(dòng)化接口將MATLABVisualBasic語(yǔ)言的一種ActiveX部件調(diào)用。MATLABActiveXMATLAB工作空間執(zhí)行MATLAB5MATLAB作為服務(wù)器VisualBasicMATLAB作為服務(wù)器客戶端的。MATLAB中.MMATLAB環(huán)境,運(yùn)VBMatrixVBMatrixVB是由第三方(mathtools公司)COMMATLAB相似的函數(shù)與VBVBVB自己MatrixVBMATLABVisualBasic中完畢矩陣運(yùn)算與圖形繪制顯示等功效,這種辦法使用起來(lái)簡(jiǎn)樸,編程效率較高。MatrixVB函數(shù)庫(kù)的功3DDEVBMATLABMatrixV環(huán)境設(shè)立在VB應(yīng)用中引入安裝8.8MWindows95WindowsNT4.0在安裝盤上找到然后在“開始→運(yùn)行”regsvr32mMatrix.dll7-17-1注冊(cè)VB開發(fā)環(huán)境并建立“原則EXE”7-27-2EXE單擊“打開”7-37-3VBproject下拉菜單中單擊References,在彈出的對(duì)話框中選中MMatrix項(xiàng)目,系統(tǒng)將加載MatrixVBMMatrix.DLL7-4所示。7-4MatrixVBVBMatrixVMatrixVBVB中能夠直接在開發(fā)環(huán)境的“立刻窗口”MATLAB命Windows選項(xiàng)在開發(fā)環(huán)境中得到“立刻窗口”7-5所示。7-5VB例如,在“立刻窗口”7-6所示。7-6VB立刻窗口中產(chǎn)生矩陣MatrixVBFigure17-77-77-87-8Form1Click44PrivateSubCommand1_Click()A=eye(4,4)End7-97-9VBMatrixVBMatrixVBClick事件解決過(guò)PrivateSubCommand1_Click()End7-107-10MatrixVBCOM服務(wù)器,因此必須在操作系統(tǒng)中注冊(cè)后方可使用,注冊(cè)時(shí)可使用以下命令行語(yǔ)句:regsvr32如果目的操作系統(tǒng)是Windows95,還必須公布另外兩個(gè)OpenGL文獻(xiàn)即opengl32.dll與glu32.dllWindows98/Me/NT4/等環(huán)境下,則不需要安裝這些文獻(xiàn)。MatrixV的矩陣操作matricVBVBdouble類型。VBMatrixVMATLABVBMATLABVARIANTDimxAsVBMatrixVB通過(guò)函數(shù)mabs轉(zhuǎn)化為MatrixVB的矩VBmabsMatrixVB的矩陣,格式為:MATRIXVB_MATRIXMatrixVBMATLAB窗口中那樣,不需要事先定義,VB_ARRAYVBVB常量與變量。7-8commandClick事件的解決過(guò)程代碼為:PrivateSubCommand1_Click()DimA(1to3,1to3)AsdoubleDimi,jAsintegerfori=1To3forj=1ToA.showEndVBAmabsMatrixVB矩B并將其顯示出來(lái)。7-117-11mabsMatrixVB通過(guò)MatrixVB340VB支持的兩種類型為MatrixVariant3×40矩陣。DimmatAsMatrixDimxAsVariantSetmat=zeros(3,4) '賦值為3×4的0矩陣Setx=zeros(3,4) '賦值為3×4的0矩陣通過(guò)函數(shù)CreateMatrixCreateMatrix(p1p2…pnp1,p2,…,pn為矩陣的值。ReshapeCreateMatrix所創(chuàng)立的函數(shù)的維數(shù),格式為:XCreateMatrix創(chuàng)立的矩陣,rows為指定的行數(shù),cols為指定的列數(shù),337-127-12CreateMatrixMatrixVBMatrixVB矩陣,但是這種方式只能對(duì)矩陣元素進(jìn)行寫操作,其格式猶VB的數(shù)組元素同樣,例如:A是一種二維矩陣則下列代碼:ij1MatrixVBrN、iNX中的每個(gè)元素的實(shí)部和虛部,其中NMatrixVBAa=A.r1(i+1)讀操作Ai12i+1VBa。BiN的方式來(lái)訪問(wèn)。X.simpleMatrixVBXVBX為只有一種元素的矩陣狀XVBDouble類型,如:DimSAsDoubleshowMatrixviwer窗口顯示矩陣內(nèi)容的功效,格式為:rows()、cols()、dims()、dimension(n)n維數(shù)的個(gè)數(shù)VBintegerA,下面的VB中的變量。 d=dimension(1) commandClick事件的解決過(guò)程。代碼為:PrivateSubCommand1_Click()'MatrixVBDimxrAsdoubleDimxiAsdoubleDimiAsintegerDimrowAsintegerDimcolAsintegerDimdimsAsintegerA=zeros(333列的零矩陣fori=1To3forj=1Toxr=A.r2(2,2)22列的值Print行數(shù)為:";Printrow;Print列數(shù)為:";Printcol;PrintPrintEndcommand17-137-147-137-14vbsave命令將矩陣寫入磁盤文獻(xiàn)中,并將數(shù)據(jù)文獻(xiàn)中保存的文獻(xiàn)讀到程序中。語(yǔ)法格式分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來(lái)實(shí)現(xiàn),并增加矩陣的行列式運(yùn)算,LUProject1StandardEXE7-157-15VB7.27-167-167-17-1 DimmatAsVariantDimiAsIntegerDimjAsFormLoadPrivateSubSetmatzeros(4,4)4×4Combo1.AddItem"轉(zhuǎn)置"Combo1.AddItem"逆矩陣"Combo1.AddItem"特性值"Combo1.AddItem"LU分解"Combo1.AddItem"SVD分解"Combo1.AddItem"行列式"i=j=1EndSubCommand2Click事件解決過(guò)程編寫代碼。PrivateSubCommand2_Click()DimrowAsIntegerDimcolAsIntegerDimtempAsDoubleLabel1.Caption="目前行,列為"&CStr(i)&","&CStr(j)mat(ij)CDbl(Text1.Text)mat中temp=CDbl(Text1.Text)Printtemp;'4時(shí)輸出結(jié)束IfjMod4=0Theni=i+j=1j=j+1EndIfText1.Text=Ifi=4i=j=Text1.Text=MsgBox"輸入已經(jīng)結(jié)束"Command2.EnabledFalseExitSubEndIfEndSubCommand1Click'mat矩陣進(jìn)行對(duì)應(yīng)的操作并將成果輸出PrivateSubCommand1_Click()IfCombo1.Text轉(zhuǎn)置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]為對(duì)角線為奇異值的矩陣,E[1],E[3]為正交矩陣v=E(1)ElseIfCombo1.Text行列式ThenF=det(mat)PrintF.Simple將行列式的值輸出到窗口上EndIfEndCommand4Clicki=j=1IfCommand2.Enabled=FalseThenCommand2.Enabled=TrueEndActiveXMatrixVB使得代碼簡(jiǎn)潔,它不需要在不同的MATLAB的環(huán)境即可得到運(yùn)算的成果。LUX(n)MatrixV的運(yùn)算符VB不支持運(yùn)算符的重載,例如“+”MatrixVB組件包中提供了一VBMatrixVB矩陣進(jìn)行算術(shù)運(yùn)算,VB支持的數(shù)據(jù)類型進(jìn)行相似的運(yùn)算,或者進(jìn)行兩者的混合運(yùn)算。因此這些函數(shù)相稱VBMatrixVB組件包中其它函數(shù)同樣對(duì)這些函數(shù)進(jìn)行調(diào)用。MatrixVB運(yùn)算符函數(shù)分為算術(shù)運(yùn)算符函數(shù)、關(guān)系運(yùn)算符函數(shù)和邏輯運(yùn)算符函數(shù)等。MatrixVBVBMatrixVBVB7-27-2MatrixVBVBVisualMatrixVBabaaaaModabaa-a-aabVBMatrixVB標(biāo)量矩陣,VB的運(yùn)算符所起的作用是同樣的,如: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)次方,計(jì)算成7-18所示。7-18ABabMatrixVBVB中的數(shù)據(jù)類型(整型,浮點(diǎn)型)的標(biāo)量,所做的運(yùn)A=CreateMatrix(1,2,3,4,5,6,7,8,A=reshape(A,3,B=power(A,A27-197-192VB7-37-3MatrixVBVBVisualMatrixVBabababab假abababVBVB的運(yùn)算符所起的作用是同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中的數(shù)據(jù)類型(整型,浮點(diǎn)型)的標(biāo)量,所做的運(yùn)A=CreateMatrix(1,2,3,4,5,6,7,8,A=reshape(A,3,B=ge(A,7-227-22VB7-47-4MatrixVBVBVisualMatrixVBaAndabaEqvabaImpabnotaaOrabaXorab陣進(jìn)行運(yùn)算的函數(shù)。除此之外,MatrixVB還提供了大量運(yùn)算函數(shù),本節(jié)我們將介紹幾個(gè)慣用的7-5所示。7-5MatrixVB函數(shù)名acbnn nFIR濾波函數(shù),a,b為濾波器系數(shù)矩陣,c快速傅立葉變換,a用來(lái)求多項(xiàng)式的根,a解線性方程組,a為系數(shù)矩陣,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組件包提供了一整套用于二維或三維作圖的函數(shù)、顏色解決函數(shù)、圖像解決函數(shù)、圖像句柄解決函數(shù)及顧客界面對(duì)話框等工具。mattrixVBfiguerVB窗口中繪制VB在figur窗口中繪制圖形MatrixVB組件包在該領(lǐng)域的應(yīng)用辦法。假設(shè)該曲線的方程為:7-24click事件的解決過(guò)程編寫代碼:PrivateSubCommand1_Click()acolon(1,1,10)產(chǎn)生一種序列y=times(2,power(a,2))y=plu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論