久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MATLAB與Visual?Basic

 zele 2010-11-17
          Visual Basic是Microsoft 公司推出的應(yīng)用廣泛的可視化編程工具,簡(jiǎn)單易學(xué),、功能豐富,,而且能夠設(shè)計(jì)出界面優(yōu)美的應(yīng)用程序;可視化的用戶(hù)界面設(shè)計(jì)功能使程序設(shè)計(jì)人員擺脫繁瑣復(fù)雜的界面設(shè)計(jì),,因而很快就風(fēng)靡全球,。Visual Basic是一種十分強(qiáng)大和有生命力的Windows 編程語(yǔ)言。但是VB語(yǔ)言也有它的缺點(diǎn),,即數(shù)值計(jì)算方面能力欠佳,,因此將其與計(jì)算能力強(qiáng)大的MATLAB混合編程將能體現(xiàn)各自的優(yōu)勢(shì),一般的集成方法我們?cè)谇懊娴恼鹿?jié)中已有介紹,本章將詳細(xì)討論基于MatrixVB的MATLAB與Visual Basic語(yǔ)言的混合編程技術(shù),。

本章主要內(nèi)容如下:

●     VB調(diào)用MatrixVB的方法

●     VB與MatrixVB的數(shù)據(jù)傳遞機(jī)制

●     混合編程應(yīng)用實(shí)例

7.1  MATLAB與Visual Basic

語(yǔ)言的混合編程方式

MATLAB提供了與C/C++,、Fortran語(yǔ)言的接口,但沒(méi)有與Vsiual Basic語(yǔ)言的接口,,要想實(shí)現(xiàn)MATLAB與Visual Basic的混合編程可以通過(guò)以下途徑來(lái)實(shí)現(xiàn),。

1.通過(guò)ActiveX方式

一是用Visual Basic開(kāi)發(fā)服務(wù)器ActiveX組件,MATLAB作為客戶(hù)端程序使用,,事實(shí)上無(wú)論是用VB還是VC或者其他語(yǔ)言環(huán)境開(kāi)發(fā)的ActiveX組件,,對(duì)于MATLAB來(lái)說(shuō)集成與調(diào)用方式是一樣的,一般情況下很容易地將不同環(huán)境下開(kāi)發(fā)的用途各異的ActiveX對(duì)象集成到一個(gè)MATLAB應(yīng)用中來(lái),。其使用方法見(jiàn)第5章關(guān)于MATLAB作為ActiveX的客戶(hù)端使用方法,。

二是在VB環(huán)境下可以通過(guò)ActiveX自動(dòng)化接口將MATLAB作為Visual Basic語(yǔ)言的一個(gè)ActiveX部件調(diào)用。MATLAB ActiveX自動(dòng)化服務(wù)的功能主要包括在MATLAB工作空間執(zhí)行MATLAB命令,,以及直接從工作空間存取矩陣等,,我們?cè)诘?章中關(guān)于MATLAB作為服務(wù)器組件的部分的例子就是以Visual Basic應(yīng)用程序,以MATLAB作為服務(wù)器客戶(hù)端的,。

2.通過(guò)動(dòng)態(tài)鏈接庫(kù)方式

該種方式是一種間接調(diào)用MATLAB命令的方式,,借助于C++與MATLAB的接口,將MATLAB的程序文件(.M文件)編譯為動(dòng)態(tài)鏈接庫(kù)(.DLL),,VB在代碼中與調(diào)用其他語(yǔ)言編寫(xiě)的DLL文件一樣調(diào)用MATLAB中.M 文件生成的動(dòng)態(tài)鏈接庫(kù),。這種方法可以脫離具體的MATLAB環(huán)境,運(yùn)行效率較高,。

3.通過(guò)嵌入VB的矩陣函數(shù)庫(kù)MatrixVB的方法

MatrixVB是由第三方(mathtools公司)提供的COM組件,,包含了大量與MATLAB相似的函數(shù)與調(diào)用語(yǔ)法,可以加強(qiáng)VB內(nèi)建數(shù)學(xué)運(yùn)算與圖形展示功能,,在VB程序代碼中可以像使用VB自己的函數(shù)一樣使用MatrixVB的函數(shù),,而且可以不依賴(lài)于MATLAB的環(huán)境在Visual Basic中完成矩陣運(yùn)算與圖形繪制顯示等功能,這種方法使用起來(lái)簡(jiǎn)單,,編程效率較高,。MatrixVB函數(shù)庫(kù)的功能大致可分為8大類(lèi)(矩陣運(yùn)算、運(yùn)算符重載,、圖形圖像處理,、最優(yōu)化運(yùn)算、多項(xiàng)式,、信號(hào)處理,、隨機(jī)與統(tǒng)計(jì)分析、控制系統(tǒng)),。

除以上3種方式外,,我們還可以通過(guò)DDE的方式實(shí)現(xiàn)VB與MATLAB的數(shù)據(jù)通信。

 

7.2  MatrixVB 環(huán)境設(shè)置

7.2.1  在VB應(yīng)用中引入MatrixVB

1.安裝MatrixVB

(1) 系統(tǒng)要求為:

●     硬盤(pán)空間8.8M以上,;

●     操作系統(tǒng)要求Windows 95及其以上版本,,或者Windows NT 4.0及其以上版本。

(2) 在安裝盤(pán)上找到Matrixvb4510.exe,,雙擊后啟動(dòng)安裝程序,,并按照安裝向?qū)О惭b。

(3) 然后在“開(kāi)始→運(yùn)行”菜單中用命令regsvr32 mMatrix.dll注冊(cè),,如圖7-1所示,。

MATLAB與Visual <wbr>Basic

圖7-1  注冊(cè) MatrixVb

2.建立EXE項(xiàng)目

(1) 啟動(dòng)VB開(kāi)發(fā)環(huán)境并建立“標(biāo)準(zhǔn) EXE”項(xiàng)目,如圖7-2所示,。

MATLAB與Visual <wbr>Basic

圖7-2  選擇標(biāo)準(zhǔn)EXE工程模板

(2) 單擊“打開(kāi)”按鈕,,所建立的項(xiàng)目及開(kāi)發(fā)界面如圖7-3所示。

MATLAB與Visual <wbr>Basic

圖7-3  VB項(xiàng)目及開(kāi)發(fā)界面

3. 為項(xiàng)目引入MatrixVB

在project下拉菜單中單擊References,,在彈出的對(duì)話(huà)框中選中MMatrix項(xiàng)目,,系統(tǒng)將加載MatrixVB的動(dòng)態(tài)鏈接庫(kù)MMatrix.DLL,如圖7-4所示,。

MATLAB與Visual <wbr>Basic

圖7-4  引入MatrixVB的動(dòng)態(tài)鏈接庫(kù)

7.2.2  在VB中使用MatrixVB的命令與函數(shù)

1.采用立即窗口的形式

在項(xiàng)目中引入MatrixVB庫(kù)后,,在VB中可以直接在開(kāi)發(fā)環(huán)境的“立即窗口”中輸入MATLAB命令,讓VB編譯器立即執(zhí)行,,如在MATLAB主窗口中一樣,。在View下拉菜單的中選擇Immediate Windows選項(xiàng)在開(kāi)發(fā)環(huán)境中得到“立即窗口”,如圖7-5所示,。

MATLAB與Visual <wbr>Basic

圖7-5  VB中的立即窗口

例如,,在“立即窗口”中輸入如下命令:

      A=eye(4,4)

A.show

命令將產(chǎn)生一個(gè)4行4列的單位矩陣,并在MatrixVB的觀察窗口Matrix Viewer中顯示結(jié)果,,如圖7-6所示,。

MATLAB與Visual <wbr>Basic

圖7-6  在VB立即窗口中產(chǎn)生矩陣

或者,在“立即窗口”中輸入命令:

     mesh(peaks(3))

將在MatrixVB的圖形窗口Figure1中繪制并顯示一個(gè)曲面網(wǎng)線圖,,如圖7-7所示,。

MATLAB與Visual <wbr>Basic



 

圖7-7  通過(guò)立即窗口繪制曲面圖

2.在VB程序代碼中使用

可以將MatrixVB的函數(shù)與命令調(diào)用嵌入到VB程序代碼中實(shí)現(xiàn)相應(yīng)的功能,其函數(shù)與命令的使用方式類(lèi)似于在MATLAB環(huán)境中的使用方式,。例如,,我們可以將上例中的功能在VB代碼中實(shí)現(xiàn),步驟為:

MATLAB與Visual <wbr>Basic

(1) 在上例的主窗口中增加一個(gè)按鈕,,如圖7-8所示,。

圖7-8  為窗口Form1增加按鈕

(2) 在按鈕的Click事件處理過(guò)程中產(chǎn)生一個(gè)4行4列單位矩陣并顯示,代碼如下:

Private Sub Command1_Click()

A = eye(4, 4)

A.Show

End Sub

單擊命令按鈕運(yùn)行程序,,運(yùn)行結(jié)果如圖7-9所示,。

MATLAB與Visual <wbr>Basic

圖7-9  VB代碼中用MatrixVB產(chǎn)生矩陣

同樣,在代碼中也可以嵌入MatrixVB繪制圖形的函數(shù)與命令,將該例按鈕的Click事件處理過(guò)程中的代碼進(jìn)行如下修改,。

    Private Sub Command1_Click()

  mesh(peaks(30))

End Sub

運(yùn)行結(jié)果如圖7-10所示,。

MATLAB與Visual <wbr>Basic

圖7-10  通過(guò)嵌入MatrixVB命令繪圖

在發(fā)布基于MatrixVB的VB應(yīng)用程序時(shí),應(yīng)將相應(yīng)的庫(kù)文件隨系統(tǒng)一起發(fā)布,。這些文件包括:v4510v.dll,、c4510v.dll、ago4510.dll,、msvcrt.dll,、msvcirt.dll和MMatrix.dll。由于MMatrix.dll是COM 服務(wù)器,,所以必須在操作系統(tǒng)中注冊(cè)后方可使用,,注冊(cè)時(shí)可使用如下命令行語(yǔ)句:

regsvr32 mMatrix.dll

如果目標(biāo)操作系統(tǒng)是Windows 95,還必須發(fā)布另外兩個(gè)OpenGL文件即opengl32.dll與glu32.dll,,但在其他操作系統(tǒng)如Windows 98/Me/NT 4/2000等環(huán)境下,,則不需要安裝這些文件。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多