freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于matlab的圖形用戶界面設(shè)計(jì)gui畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-24 18:13 本頁面
 

【文章內(nèi)容簡介】 單元, 具有強(qiáng)大的數(shù)值計(jì)算功能、繪圖功能及可視化的仿真環(huán)境。通過MATLAB提供的圖形用戶界面(Graphical User Interfaces,簡稱GUI) 設(shè)計(jì)與開發(fā)功能, 設(shè)計(jì)開發(fā)出應(yīng)用于感應(yīng)電動(dòng)機(jī)性能分析和參數(shù)計(jì)算的GUI,從而為感應(yīng)電動(dòng)機(jī)性能分析提供了一個(gè)有效的軟件計(jì)算工具,可以使復(fù)雜的數(shù)值計(jì)算變得非常簡便。2 設(shè)計(jì)課題軟件系統(tǒng) MATLAB的 GUI軟件系統(tǒng)介紹矩陣實(shí)驗(yàn)室(Matrix Laboratory,簡稱MATLAB)是美國MathWorks公司出品的數(shù)學(xué)軟件,主要包括兩大部分:MATLAB和Simulink,可實(shí)現(xiàn)算法開發(fā)、工程數(shù)值計(jì)算和對動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真等功能?! ATLAB它在理工科的數(shù)值計(jì)算方面得到廣泛的運(yùn)用。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制平面及空間圖形、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言編寫的程序等,主要應(yīng)用于金融建模設(shè)計(jì)與分析、工程計(jì)算、圖像處理、控制工程、信號處理與通信、信號檢測等領(lǐng)域。MATLAB可以創(chuàng)建圖形用戶界面(Graphical User Interfaces,簡稱GUI) , 圖形用戶界面是指由鼠標(biāo)、窗口、按鍵、光標(biāo)、菜單、圖標(biāo)、對話框和文本框等各種圖形對象組成的用戶界面。它可以讓用戶自由定制與MATLAB的交互方式,而命令窗口不是唯一與MATLAB的交互方式。圖形用戶界面是用戶和計(jì)算機(jī)之間進(jìn)行交流的工具,MATLAB 將所有圖形用戶界面支持的用戶控件都集成在這個(gè)環(huán)境中并提供界面外觀、屬性、行為響應(yīng)方式的設(shè)置方法。隨著版本的升級,這種界面設(shè)計(jì)能力也在不斷加強(qiáng),并且具有強(qiáng)大的繪圖功能,可以很方便的獲得更高質(zhì)量的曲線圖。MATLAB為表現(xiàn)其基本的功能而設(shè)計(jì)的演示程序demo 是用戶開發(fā)設(shè)計(jì)圖形界面的最好范例。在MATLAB的命令窗口中輸入命令demo ,打開演示圖形界面后,用戶只要用鼠標(biāo)進(jìn)行選擇和點(diǎn)擊,就可瀏覽其中豐富多彩的內(nèi)容。整體來說, MATLAB的圖形用戶界面設(shè)計(jì)有兩種方式:第一種是直接通過程序編寫的方式產(chǎn)生對象, 即利用uicontrol、uimenu、uicontextmenu 等函數(shù)編寫的M文件來開發(fā)整個(gè)圖形用戶界面。用戶使用這種方式建立的菜單比較齊全, 文件, 但是它的程序代碼通用性很高, 因此當(dāng)完成一個(gè)圖形界面設(shè)計(jì)后, 該程序代碼就可以復(fù)制到其他的MATLAB 的M文件中使用, 也可以復(fù)制到GUIDE編輯器 的M文件中使用, 如此可以節(jié)省額外開發(fā)相同或類似對象的時(shí)間。但用程序編寫的方式建立對象非常繁雜, 不僅需要用戶輸入所要建立的對象屬性名稱和屬性值,還需要用戶事先規(guī)劃好每一個(gè)對象的位置。若用戶不是非常熟悉圖形界面的設(shè)計(jì),很可能會(huì)難以控制界面的布局。另一種開發(fā)圖形用戶界面的方式是直接通過MATLAB 的GUIDE編輯器進(jìn)行設(shè)計(jì), 它有點(diǎn)類似Visual Basic 這一類的開發(fā)環(huán)境, 用戶只需將對象直接用鼠標(biāo)拖拽到相應(yīng)位置, 就可以快速的開發(fā)設(shè)計(jì)出整個(gè)圖形用戶界面, 其設(shè)計(jì)比編程方式簡單,并可將幾個(gè)圖形對象加到一個(gè)圖形界面中, 增強(qiáng)可視性。生成圖形用戶界面有以下幾點(diǎn)好處: ● 編寫一個(gè)需多次反復(fù)使用的實(shí)用函數(shù),使文本框、菜單、按鈕作為輸入方法具有重要的意義; ● 編寫函數(shù)或開發(fā)應(yīng)用程序以供別人使用; ● 創(chuàng)建一個(gè)過程、分析方法或技術(shù)的交互式環(huán)境,方便用戶使用;本設(shè)計(jì)課題主要是通過MATLAB的GUI編輯界面——GUIDE編輯器來建立簡易計(jì)算器與感應(yīng)電動(dòng)機(jī)性能分析的圖形用戶界面(Graphical User Interfaces,簡稱GUI)。 MATLAB的GUIDE編輯器剛開始建立GUI時(shí),使用GUIDE編輯GUI的速度將會(huì)比較快。用戶可以直接在MATLAB的命令窗口中輸入guide,或在MATLAB的start菜單選取【MTALAT】【GUIDE(GUI Builder)】選項(xiàng)或單擊Desktop工具欄上的按鈕,都可以打開MATLAB的GUIDE編輯器來進(jìn)行界面設(shè)計(jì)。 guide使用此編輯器能夠快速地設(shè)計(jì)出GUI,并且可以省略繁瑣的函數(shù),是以對象為導(dǎo)向的觀念,使GUI的設(shè)計(jì)更加靈活;此外,若通過MATLAB Compiler編譯為可執(zhí)行文件或由MATLAB Runtime Server封裝文件,就可以在沒有MATLAB的環(huán)境下運(yùn)行使用,以發(fā)揮最大效用。在MATLAB ,GUIDE編輯界面如圖1所示的“GUIDE Quick Start” 對話框,提供了Blank GUI、Modal Question Dialog、GUI with Axes and Menu、GUI with Uicontrols4種樣板。圖1 “GUIDE Quick Start”對話框● Blank GUI樣板:一個(gè)空的GUI樣板,必須由用戶自行加入所需要的對象,雙擊此選項(xiàng)后,在GUI編輯區(qū)內(nèi)不會(huì)有任何的對象存在?!?Modal Question Dialog樣板:在此編輯器中已經(jīng)有用戶建立的一個(gè)問題對話框?!?GUI with Uicontrols樣板:打開已經(jīng)設(shè)計(jì)好的一些GUI對象的GUIDE編輯器,而在此編輯器中已經(jīng)包含了由用戶建立的一些具有計(jì)算功能的對象?!?GUI with Axes and Menu樣板:在此編輯器中也已經(jīng)有一些由用戶設(shè)計(jì)好的GUI對象,而這些對象主要用于計(jì)算與輸出。在以上幾個(gè)樣板中,用戶一般都是使用Blank GUI來建立GUI對象,選取完后單擊ok按鈕,即可打開如圖2所示的GUI編輯界面。圖2 GUI編輯界面 建立GUIDE對象在MATLAB中打開GUI編輯界面后就可以進(jìn)行GUI設(shè)計(jì)了,如圖2所示的GUIDE 編輯界面中,左方提供了用戶可選擇的uicontrol對象。用戶只需通過鼠標(biāo)單擊左方任一uicontrol對象后,然后在GUIDE窗口內(nèi)使用鼠標(biāo)拖拽對象大小來放置,就可以建立好該對象。如圖3所示,用戶用鼠標(biāo)選取Push Button對象后,直接在GUIDE窗口內(nèi)拖拽該對象的大小來放置Push Button即可。Edit Text、Static Text的建立方式與Push Button的相同。用戶建立完對象后,則在自己已經(jīng)建立的對象上單擊鼠標(biāo)左鍵來選取該對象作為當(dāng)前對象,即可修改各對象的大小,此時(shí)對象框的四周會(huì)顯示四個(gè)黑點(diǎn),即可直接用鼠標(biāo)拖拽這些黑點(diǎn)來修改對象框的大?。煌瑯涌捎檬髽?biāo)選取該對象后,再拖拽移動(dòng)對象即可修改對象的位置;用戶可以使用鼠標(biāo)直接拖拽右下角的黑點(diǎn)來進(jìn)行修改整個(gè)GUI窗口的大小。圖3 GUI的建立 修改GUI對象屬性當(dāng)建立完對象后,用戶就可以開始修改對象的屬性了,與前面介紹的方式一樣,直接在該GUI對象上雙擊鼠標(biāo)即可打開如圖4所示的屬性檢查器,里面包含了該對象所有可設(shè)置的屬性值與屬性名稱。假設(shè)必須將圖3內(nèi)的Push Button對象的字形改為粗體字,因此在該屬性檢查器中單擊 “Font Weight”右方的按鈕后,選取其中的“bold”選項(xiàng)就可以將字體改為粗體字;另外,如果我們要更改按鈕的名稱,用戶可以通過修改String屬性,與修改Font Weight的做法相同,但由于String屬性必須是輸入顯示的名稱,因此將原本的屬性值Push Button刪除后再輸入用戶所需設(shè)計(jì)的按鈕名稱即可。例如本設(shè)計(jì)課題中簡易計(jì)算器的GUI設(shè)計(jì)的后退按鈕Backspace屬性設(shè)置,如圖5所示。我們發(fā)現(xiàn)在GUIDE中設(shè)置對象屬性是比較方便的,用戶僅需了解該屬性的用途以及各對象間之間的關(guān)系,而不需要完整的去記整個(gè)屬性的名稱,并且可以直接通過交互式的界面來進(jìn)行各對象屬性的修改,這樣可以節(jié)省很多屬性設(shè)置的時(shí)間,可以很快地建立一個(gè)符合我們要求的圖形界面。圖4 屬性檢查器圖5 修改Push Button對象屬性 GUIDE中加入圖案在GUIDE中加入圖案,首先要在GUIDE編輯界面中建立一個(gè)Axes對象,作為圖像顯示的坐標(biāo)軸,使用axes(句柄值)可以用來控制當(dāng)前的坐標(biāo)軸。在MATLAB中,一個(gè)完整的圖像顯示過程必須使用到幾個(gè)函數(shù),分別為imread(讀取圖像)、image(顯示圖像)、imwrite(寫入圖像),這樣我們就可以將特定的圖案顯示在GUI中,來美化我們的界面(有點(diǎn)類似于Visual Basic內(nèi)的picture對象的效果)。 本設(shè)計(jì)課題中感應(yīng)電動(dòng)機(jī)性能分析界面設(shè)計(jì)中顯示的鼠籠式感應(yīng)電機(jī)圖像程序代碼如下:ax=axes(39。Position39。,[ ])。 %控制當(dāng)前的坐標(biāo)值[x,map] = imread(39。IMPic139。,39。jpg39。)。image(x)set(gca,39。visible39。,39。off39。) %設(shè)置坐標(biāo)為隱藏,只顯示圖像ax1=axes(39。Position39。,[0 ])。 設(shè)計(jì)課題中的GUI對象介紹下面簡要介紹本設(shè)計(jì)課題使用的GUIDE編輯器中對象的用途與使用方式。(1) Push ButtonPush Button為GUI最常使用也是最簡單的對象,當(dāng)用戶按下Push Button時(shí),MATLAB就會(huì)立即依據(jù)其對應(yīng)的Callback程序來執(zhí)行操作。以下為本設(shè)計(jì)課題的數(shù)字1按鈕的Callback,其Tag屬性為pushbutton1,這個(gè)按鈕主要是用來進(jìn)行數(shù)值計(jì)算,其整個(gè)對應(yīng)的Callback程序如下:%按鍵1響應(yīng)% Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)global iiText_String = get(,39。String39。)。if(strcmp(Text_String,39。0.39。)==1)amp。(ii==0) set(,39。String39。,39。139。) 。elseText_String =strcat(Text_String,39。139。)。set(,39。String39。,Text_String)endii=0。需要注意的是GUI中的屬性字符是不分大小寫的,所以Callback與CALLBACK及callback都是相同的。 (2) Static Text Static Text不同于Edit Text,不可以在執(zhí)行中任意編輯輸入值,因此Static Text主要用于制作顯示框、狀態(tài)信息、或其余資料(由String屬性指定顯示的文字),當(dāng)然其顯示的文字也是可以在執(zhí)行中通過其他對象的Callback去編輯String屬性的。例如當(dāng)驅(qū)動(dòng)某一對象的Callback后,會(huì)將句柄值為a的Static Text的屬性改為 “執(zhí)行中”,該對象的Callback為set(a,’string’,’執(zhí)行中’)。(3) Edit TextEdit Text主要是用來當(dāng)做一個(gè)輸入的接口,以便用戶能夠輸入字符串、字符或數(shù)字,因此Edit Text的屬性String即可作為一個(gè)有效的溝通媒介。用戶可以直接在Edit Text的Callback中編寫獲取該Edit Text輸入值的程序:get(gcbo,’string’),返回當(dāng)前Edit Text輸入的值,然后在通過userdata或global的方式,將該值傳遞到要使用的Callback中,不過變量較多時(shí),會(huì)造成管理上的不便,因此習(xí)慣上直接在要使用該值的Callback中,編寫獲取Edit Text輸入值的程序,如hh=findobj(‘tag’,‘a(chǎn)bc’);ff=str2mun(get(hh,‘string’))。,表示將Tag名稱為abc的Edit Text中的輸入值轉(zhuǎn)換為數(shù)值后存儲(chǔ)到ff變量中,這樣就可省去變量傳遞的麻煩。此外,若多行輸入時(shí)必須調(diào)整Max與Min的屬性值是MaxMin1,一般習(xí)慣將Max設(shè)為2。 編輯GUI對象的Callback在MATLAB中,我們可以對句柄圖形對象設(shè)置一些響應(yīng)函數(shù),這些事件的響應(yīng)函數(shù)我們稱之為對象的回調(diào)函數(shù),不同的對象對應(yīng)的回調(diào)函數(shù)不同。用戶可單擊【Mfile Editor】按鈕,則系統(tǒng)會(huì)自動(dòng)將已建立的GUI對象存儲(chǔ),隨后將產(chǎn)生*.fig(已建立的GUI文件)與*.m(用以編輯對象Callback的M文件),并且GUIDE會(huì)自動(dòng)打開這個(gè)M文件,此時(shí)就可以開始編輯對象的Callback程序了。這里編寫Callback的方式與GUIDE菜單編輯器的原理一樣,可以直接在屬性檢查器的“Callback”文本框中輸入要執(zhí)行的MATLAB語句,不過此種方式由于文本框?qū)挾鹊南拗疲虼溯斎氲腃allback語句也將受到限制,當(dāng)用戶的Callback比較短時(shí),可以直接在“Callback”文本框中輸入MATLAB語句,但當(dāng)Callback較長時(shí),將非常不適合,這時(shí)候必須通過GUIDE的M文件來編輯Callback了,使用此種做法的“Callback”文本框必須設(shè)置為默認(rèn)的%automatic,當(dāng)GUIDE存儲(chǔ)后,就可以在M文件中編寫Callback了,其M文件中會(huì)顯示類似如下的Callback形式:function pushbutton1_Callback(hObject,eventdata,handles)%hObject是當(dāng)前對象(Callback)的句柄值;%eventdata是備用參數(shù),目前沒有定義;%handles是一個(gè)結(jié)構(gòu)數(shù)組,存放了圖形窗口所有對象的句柄值和用戶數(shù)據(jù)。以上的Callback函數(shù)是Tag名稱為pushbutton1所對應(yīng)的函數(shù),其后很多以%為首的語句都是系統(tǒng)自動(dòng)生成的程序注釋語句,可以不必理會(huì),用戶直接在其中加入要執(zhí)行的程序語句即可,則當(dāng)執(zhí)行GUI時(shí),若單擊Tag名稱為pushbutton1所對應(yīng)的按鈕,就會(huì)觸發(fā)執(zhí)行Callback下所指定的操作。3 設(shè)計(jì)課題界面設(shè)計(jì)、調(diào)試及程序 設(shè)計(jì)課題界面設(shè)計(jì) 簡易計(jì)算器界面設(shè)計(jì)首先用MATLAB GUIDE編輯器,繪制一個(gè)靜態(tài)文本框和一個(gè)可編輯文本框,以及33個(gè)按鈕,調(diào)整好各控件的大小、顏色,其布局如圖6所示,然后雙擊各個(gè)控件修改其屬性,單擊激活按鈕,生成如圖7所示的界面,在M文件中編寫各控件的Callback程序,最后調(diào)試運(yùn)行。圖6 簡易計(jì)算器布局
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1