【大学课件】matlab 程式设计入门篇guide

上传人:xiao****1972 文档编号:71245417 上传时间:2019-01-19 格式:PPT 页数:42 大小:1.08MB
返回 下载 相关 举报
【大学课件】matlab 程式设计入门篇guide_第1页
第1页 / 共42页
【大学课件】matlab 程式设计入门篇guide_第2页
第2页 / 共42页
【大学课件】matlab 程式设计入门篇guide_第3页
第3页 / 共42页
【大学课件】matlab 程式设计入门篇guide_第4页
第4页 / 共42页
【大学课件】matlab 程式设计入门篇guide_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《【大学课件】matlab 程式设计入门篇guide》由会员分享,可在线阅读,更多相关《【大学课件】matlab 程式设计入门篇guide(42页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 程式設計入門篇 GUIDE,http:/ MATLAB第七版的 GUIDE簡介,GUIDE 是 Graphic User Interface Design Environment 的簡稱。 它是一個 設計圖形使用者介面(Graphical User Interface,簡稱 GUI)的發展環境 。 使用 GUIDE 工具的好處如下: 可以產生每一個控制物件的標準反應函式,使用者只要填入所需的指令或敘述。 可以快速地拉出介面,具有所見即所得的性質。 GUIDE 也有不盡人意之處 比較不適用於複雜的 GUI 介面 。 無法將 GUI 應用程式集中於一個檔案。 執行效率可能比較差一些。

2、,http:/ MATLAB第七版的 GUIDE簡介,欲啟動 MATLAB 7.x 的 GUIDE,只需在命令視窗下輸入guide即可開啟 GUIDE 的主面版:,http:/ MATLAB第七版的 GUIDE簡介,在Create New GUI的頁面中,你可以選擇幾個樣版: Blank GUI (Default):空白樣版 GUI with Uicontrols:含有 UI 控制物件(UI Controls)的樣版 GUI with Axes and Menu:含有圖軸和下拉選單的樣版 Modal Question Dialog:含有對話窗的樣版 如果你已經有之前所設計 的畫面,也可以點選

3、Open Existing GUI, 來開啟以前的檔案,如 右圖所示:,http:/ MATLAB第七版的 GUIDE簡介,為了簡化說明,我們先回到Create New GUI頁面,並點選Blank GUI (Default)來開啟空白樣版,其畫面如下:,http:/ MATLAB第七版的 GUIDE簡介,在上述的畫面中,左邊是各種 UI 控制物件和圖軸的選單,選取之後,你就可以在中間空白部分,以滑鼠點選並拖放來擺置你所需要的 UI 控制物件或圖軸等。 我們可以修改預設的 GUIDE 編輯面版,讓它更好用: 如果嫌左邊的圖示太小,可以點選 File/Preference,並點選Show nam

4、es in component palette,就可以顯示左邊各個圖式的文字說明。 如果要在面版周圍顯示尺規(Ruler),可以在下拉選單選擇 Tools/Grid and Rulers,然後再點選跳出視窗的Show rulers,就可以在面版周圍顯示尺規。,http:/ MATLAB第七版的 GUIDE簡介,經由上述的設定後,GUIDE 主面版顯示如下:,http:/ 入門範例一,我們先改變 GUIDE 面版的大小(由拖放面版右下角的黑點來達成 ) 接著在面版上放置兩個控制物件 一個是拉霸 (Slider) 另一個是可編輯文字 欄位(Edit Text),http:/ 入門範例一,我們可以使

5、用滑鼠右鍵來點選任一個 UI 控制物件,並選取Inspect Properties,以改變其性質。 以上面的拉霸為例,以滑鼠右鍵點選後,選取Inspect Properties,即可開啟性質檢視器(Property Inspector)。,http:/ 入門範例一,在性質檢視器中,左邊是物件的性質,右邊則是此性質所對應的值,我們可以點選右邊來改變這些值。 完成物件代號的設定後,我們就可以設定物件的反應命令。我們希望這些反應命令能夠使這個 GUI 應用程式達到下列功能: 當使用者拖放拉霸時,能將拉霸的位置(預設值是介於 0 和 1 之間)顯示在文字欄位。 文字欄位值被改變時,拉霸的位置能夠隨之改

6、變。 在 GUIDE 的環境下,一個物件的反應命令都是由一個特定的函式來完成,這個函式就稱為反應函式,而函式名稱就是物件代號_Callback。,http:/ 入門範例一,我們以滑鼠右鍵點選拉霸,並選取View Callbacks/Callback,即可開啟 MATLAB 程式編輯器。 此程式編輯器會顯示反應命令必須加入的位置,拉霸的 Tag 是 mySlider,所以其反應函式是 mySlider_Callback(),所加進去的兩列敘述如下: 第一列敘述抓出拉霸的位置,並轉成數值。 第二列則將此數值設定為文字欄位的顯示文字。,position = num2str(get(handles.m

7、ySlider, Value); set(handles.myText, String, position);,http:/ 入門範例一,http:/ 入門範例一,使用相同的方式,我們也可以加入文字欄位的反應命令,其反應函式是 myText_Callback(),所加進去的兩列敘述如下: 第一列抓出文字欄位的顯示文字,然後轉成數值。 第二列將拉霸的位置設定成此數值。 加入的位置如下所示:,value = str2double(get(handles.myText, String); set(handles.mySlider, Value, value);,http:/ 入門範例一,http:/

8、 入門範例一,按下 GUIDE 面版的工具列的三角形按鈕,即可開啟可使用的 GUI 介面 由於所產生的程式碼並不在 MATLAB 的搜尋路徑中,因此會先跳出一個詢問視窗:,http:/ 入門範例一,直接按下確定後就會跳出我們所設計的 GUI 介面如下: 你可以直接移動拉霸,其位置就會顯示在文字欄位內;你也可以修改文字欄位的值,來指定拉霸的位置(收錄在本書光碟的 gui01.m 和 gui01.fig)。,http:/ 入門範例一,在設計反應命令時,最重要的事,就是要能讓不同的 UI 控制物件都能存取其他物件以及相關資料,因為每一個 UI 控制物件的反應命令都是以函式的型式來進行。 因此 GUI

9、DE 在每一個反應函式內提供了一個結構變數 handles,以便提供資料的共通,可達到下列兩項功能: 經由 handles 來存放或取用共通的資料。 經由 handles 來取得每一個 UI 控制物件的性質。,http:/ 入門範例一,例如,若要在某一個控制物件的反應函式內存放變數 A,可以加入下列敘述: 如果要在另一個控制物件的反應函式裡面使用變數 A,只要加入下列敘述即可:,handles.myData = A; % 將變數 A 存放在 handles 的 myData 欄位 guidata(hObject, handles) % 將新的 handles 存回整個 GUI 介面,A = h

10、andles.myData;,http:/ 入門範例一,handles 本身也包含了同一個 GUI 介面下的所有控制物件,因此你可以在任一個反應函式內取用每一個控制物件,如下: handles.mySlider:拉霸物件 handles.myText:文字欄位物件 如果整個 GUI 的名稱是 myGUI,那麼 handles.myGUI 就是指到整個 GUI 的圖形,因此若要關閉此視窗,也可以使用下列敘述:,delete(handles.myGUI),http:/ 入門範例二,我們將改進前一個範例,在使用者輸入不合法的數值時,應用程式能夠回應錯誤訊息,並記錄錯誤的次數。 我們可以經由 GUID

11、E 面版開啟 myGUI01,然後點選下拉式選單File/Save As將之儲存到 myGUI02。此時 GUIDE 會開啟 myGUI02.m,你必須在 myGUI02_OpeningFcn() 函式加入下列敘述: 此敘述必須加在 guidata(hObject, handles);之前,以保證新的 handles 會被保留。,handles.errorCount = 0;,http:/ 入門範例二,接著修改文字欄位的反應命令,如下:,value = str2double(get(handles.myText, String); % 判斷是否為介於 0 和 1 之間的純量數值 if isnu

12、meric(value) end,http:/ 入門範例二,執行此應用程式,在第四次輸入不合法的數值後,畫面如下: 本範例收錄在本書光碟內的 gui02.m 和 gui02.fig。,http:/ 入門範例三,在這個範例中,使用者可以使用下拉式選單來選取不同的聲音檔案,來顯示波形,並可播放聲音。 首先,我們可以擺置一個圖軸和一些 UI 控制物件,如下圖:,http:/ 入門範例三,http:/ 入門範例三,接著,我們可以使用滑鼠右鍵來點選每一個 UI 控制物件,並選取Inspect Properties,以改變其性質,每個物件所改變的性質如下:,http:/ 入門範例三,下一步我們要定義每個

13、UI 控制物件的反應命令,MATLAB 會在這些 UI 控制物件被點選時,同時呼叫每個物件所對應的反應命令。 首先,我們以滑鼠右鍵點選 Close 按鈕,並選取View Callbacks/Callback 此程式編輯器會顯示反應命令必須加入的位置,依本例而言,Close 按鈕的 Tag 是 closeButton,所以其反應命令也必須加在函數 closeButton_Callback 之內,http:/ 入門範例三,加進去的命令是 close(gcbf),如下:,http:/ 入門範例三,gcbf 代表產生此反應命令的視窗,因此 close(gcbf) 即是代表關閉此 GUI 介面所在的視窗。 提示:gcbf 的功能為傳回發號反應指令的視窗,這一類的指令相當好用,可整理如下: gcf: get current figure (取得目前視窗) gca: get current axes (取得目前圖軸) gco: get current object (取得目前物件) gcbf: get callback figure (取得發號反應指令之視窗) gcbo: get callback object (取得發號反應指令之物件),htt

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号