matlab實(shí)驗(yàn) (6)

上傳人:仙*** 文檔編號(hào):155542268 上傳時(shí)間:2022-09-23 格式:DOC 頁(yè)數(shù):15 大?。?47.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
matlab實(shí)驗(yàn) (6)_第1頁(yè)
第1頁(yè) / 共15頁(yè)
matlab實(shí)驗(yàn) (6)_第2頁(yè)
第2頁(yè) / 共15頁(yè)
matlab實(shí)驗(yàn) (6)_第3頁(yè)
第3頁(yè) / 共15頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《matlab實(shí)驗(yàn) (6)》由會(huì)員分享,可在線閱讀,更多相關(guān)《matlab實(shí)驗(yàn) (6)(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 實(shí)驗(yàn)六 MATLAB 圖形用戶(hù)界面制作和仿真 一、實(shí)驗(yàn)?zāi)康模? 1、了解句柄圖形對(duì)象 2、了解GUI的基本知識(shí) 3、掌握創(chuàng)建GUI對(duì)象的方法 4、GUI編程練習(xí) 二、相關(guān)知識(shí) 1、句柄圖形對(duì)象 (1) 圖形框架窗口對(duì)象(Figure) ? 繪制圖形的圖形框架窗口對(duì)象 ? 核心(Core)對(duì)象 ? 繪圖(Plot )對(duì)象 ? 注釋對(duì)象 (2) 圖形對(duì)象屬性的獲取和設(shè)置 ? get函數(shù) ? set函數(shù) ? 默認(rèn)屬性 (3) 圖形對(duì)象的操作 ? 查找對(duì)象 ? 堆積次序 2. GUI的基本知識(shí) (1)啟動(dòng)GUI (2)布局

2、(Layout)編輯器 (3)GUIDE模板介紹 (4)運(yùn)行GUI 3. 創(chuàng)建GUI對(duì)象 (1)GUI窗口的布局 ? 改變GUI窗口的大小 ? 控件的添加和對(duì)齊 (2) GUI控件的屬性控制 ? 屬性查看器的顯示 ? 一些常用的屬性 (3)菜單的添加 ? 主菜單的創(chuàng)建 ? 彈出式菜單的的創(chuàng)建 4. GUI 編 程 ? GUI的M文件 – 與句柄結(jié)構(gòu)共享數(shù)據(jù) – M文件中的函數(shù)和響應(yīng) ? 控件的使用 ? 使用句柄結(jié)構(gòu)進(jìn)行GUI數(shù)據(jù)操作 三、上機(jī)練習(xí) (一)、練習(xí)書(shū)上的例子 啟動(dòng)GUIDE 啟動(dòng)GUIDE

3、有三種方法:在MATLAB操作桌面,單擊File→New→GUI選項(xiàng)、單擊工具欄上的圖標(biāo) 、在命令窗口輸入guide后回車(chē),出現(xiàn)GUIDE Quick Start對(duì)話(huà)框。 Create new GUI選項(xiàng)卡包含四個(gè)初始化設(shè)計(jì)模板:Blank GUI(Default)創(chuàng)建一個(gè)空白的GUI、1) GUI with Uicontrols創(chuàng)建一個(gè)帶有控制組件的GUI、GUI with Axes and Menu創(chuàng)建一個(gè)帶有軸對(duì)象和菜單的GUI、Model Question Dialog創(chuàng)建一個(gè)問(wèn)題對(duì)話(huà)框。 2)Open Existing GUI選項(xiàng)卡含有一個(gè)Recenty opened fi

4、les(最近打開(kāi)過(guò)的GUI文件)選擇框。 選擇Blank GUI(Default)模板,單擊【OK】按鈕,打開(kāi)GUI設(shè)計(jì)窗口。 單擊設(shè)計(jì)窗口File→Preferences選項(xiàng),打開(kāi)Preferences對(duì)話(huà)框,選中Show name in component palette選項(xiàng),在組件面板中顯示控件名稱(chēng)。 設(shè)計(jì)窗口的右邊為版面設(shè)計(jì)區(qū),向版面設(shè)計(jì)區(qū)添加控件,可以用鼠標(biāo)從組件面板拖動(dòng)來(lái)完成版面設(shè)計(jì)完成后,單擊工具欄的運(yùn)行按鈕,即可運(yùn)行GUI。 首次運(yùn)行 GUI 時(shí),系統(tǒng)會(huì)提示存盤(pán)。存盤(pán)完成后,系統(tǒng)會(huì)打開(kāi)運(yùn)行界面窗口和M文件編輯窗口,同時(shí)生成兩個(gè)文件:一個(gè)是fig文件,

5、包含對(duì)GUI及其組件的完整描述;另一個(gè)是M文件,包含GUI的程序代碼和組件回調(diào)事件代碼。 控件介紹: (1)命令按鈕(Push Button) (2)開(kāi)關(guān)按鈕(Toggle Button) (3)單選按鈕(Radio Button) (4)核選框(Check Box) (5)滑動(dòng)條(Slider) (6)可編輯文本框(Edit Text) (7)靜態(tài)文本框(Static Text) (8)彈出式菜單(Pop-Up Menu) (9)列表框(Listbox) (10)坐標(biāo)軸(Axes) (11)面板(Panel) (12)按鈕組(Button Group) (13)

6、ActiveX控件(ActiveX Control) 對(duì)象屬性檢查器設(shè)置 : 利用對(duì)象屬性檢查器,可以查看每個(gè)對(duì)象的屬性值,也可以修改、設(shè)置對(duì)象的屬性值。 選中某個(gè)控件,單擊GUI設(shè)計(jì)窗口工具欄上 按鈕、單擊View→Property Inspector子菜單,直接雙擊控件,都可以打開(kāi)對(duì)象屬性檢查器。 界面制作包括界面設(shè)計(jì)和程序?qū)崿F(xiàn),一般制作步驟如下: ? 分析界面所要求實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù); ? 界面設(shè)計(jì),確定界面所用部件及其屬性; ? 回調(diào)函數(shù)設(shè)置; ? 對(duì)實(shí)現(xiàn)的功能進(jìn)行逐項(xiàng)調(diào)試檢查; ? 對(duì)界面部件進(jìn)行裝飾,使其更人性化。 例子練習(xí): 例1:根據(jù)

7、上面的界面制作步驟,制作一個(gè)界面,點(diǎn)擊不同控件能分別顯示sin(x)和tan(x)。 第一步,題意分析 本例子需要有一個(gè)坐標(biāo)軸(Axes);要三個(gè)命令按鈕控件分別控制sin(x)和tan(x)顯示以及一個(gè)停止按鈕。 第二步,界面設(shè)計(jì) (1)新建一個(gè)GUI界面 在MATLAB操作桌面上,單擊File → New → GUI選項(xiàng),選擇Blank GUI(Default)模板,單擊“OK”按鈕,打開(kāi)GUI設(shè)計(jì)窗口。 (2)添加控件 用鼠標(biāo)從GUI設(shè)計(jì)窗口的組件面板中拖動(dòng)坐標(biāo)軸(Axes),3個(gè)命令按鈕(PushButton)控件。 (3)排列控件 選中兩個(gè)或兩個(gè)以上需要

8、排列的控件,單擊設(shè)計(jì)窗口的工具或單擊Tools→Align Objects菜單項(xiàng),打開(kāi)排列工具對(duì)話(huà)框, (4)設(shè)置控件屬性 雙擊需要屬性設(shè)置的控件,打開(kāi)對(duì)象屬性檢查器,設(shè)置控件屬性。 “y=sin(x)”按鈕:String屬性修改為y=sin(x),F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3,其他為默認(rèn)值。 “y=tan(x)”編輯文本:String屬性修改為y=tan(x),其他屬性同上。 “STOP”按鈕:String屬性修改為“stop”,Tag屬性修改為“stop”,其他同上。 控件設(shè)置效果如圖所示

9、: 第三步,回調(diào)函數(shù)設(shè)置 在“求零極點(diǎn)”按鈕上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks → CallBack(回調(diào)函數(shù)), 在函數(shù)function sinx_Callback(hObject, eventdata, handles)后面添加如下程序: x=0:0.01:2*pi; y=sin(x); plot(x,y) title('y=sin(x)'); xlabel('坐標(biāo)x'); ylabel('坐標(biāo)y'); 在函數(shù)function tanx_Callback(hObject, eventdata, handles)后面添加如下程序: x=0:0.

10、01:2*pi; y=tan(x); plot(x,y) title('y=tan(x)'); xlabel('坐標(biāo)x'); ylabel('坐標(biāo)y'); 在函數(shù)function stop_Callback(hObject, eventdata, handles)后面添加如下程序: close 第四步,逐項(xiàng)調(diào)試檢測(cè) 單擊工具欄的運(yùn)行按鈕,按照提示保存后,運(yùn)行并驗(yàn)證程序功能。 第五步,裝飾控件 一般情況停止按鈕為紅色較為習(xí)慣,運(yùn)行按鈕為綠色的,所以將STOP控件的Property Inspercter里的BackgroundColor設(shè)置為紅色;將y=sin(x)和y=ta

11、n(x)控件的Property Inspercter里的BackgroundColor設(shè)置為綠色的 例2:設(shè)計(jì)一個(gè)滾動(dòng)條與一個(gè)編輯文本框互相傳遞并顯示0~10間的數(shù)字。 1、題意分析 本例需調(diào)用一個(gè)滾動(dòng)條(Sliders)、一個(gè)動(dòng)態(tài)文本編輯框(Edit Text)、一個(gè)靜態(tài)文本框(Static Text)、兩個(gè)命令按鈕(Push Button)。 2、控件分析 “滾動(dòng)條”控件(Sliders)的響應(yīng):在圖形界面中添加該控件之后,設(shè)置它的屬性最大值max和最小值min,其值將在max和min之間變化。要獲取“滾動(dòng)條”控件的當(dāng)前值及范圍, “文本框”控件(Edit Text)的響應(yīng):在

12、圖形界面中添加該控件之后,該控件的屬性相當(dāng)于其他語(yǔ)言設(shè)計(jì)中的文本框?qū)傩裕试S用戶(hù)動(dòng)態(tài)地編輯或是輸入文本字符串。 3、界面設(shè)計(jì) (1)新建一個(gè)GUI界面 在MATLAB操作桌面上,單擊File → New → GUI選項(xiàng),選擇Blank GUI(Default)模板,單擊“OK”按鈕,打開(kāi)GUI設(shè)計(jì)窗口。 (2)添加控件 用鼠標(biāo)從GUI設(shè)計(jì)窗口的組件面板中拖動(dòng)滾動(dòng)條(Slider),一個(gè)靜態(tài)文本(Static Text)一個(gè)編輯文本(Edit Text),3個(gè)命令按鈕(PushButton)控件。 (3)排列控件 選中兩個(gè)或兩個(gè)以上的需要排列的控件,使用幾何位置排列工具,排列圖標(biāo)。

13、 (4)設(shè)置控件屬性 雙擊需要屬性設(shè)置的控件,打開(kāi)對(duì)象屬性檢查器,設(shè)置控件屬性。 滾動(dòng)條:BackgroundColor屬性修改為深藍(lán)色,Max屬性修改為10,Max屬性修改為0,其他為默認(rèn)值。 編輯文本:String屬性修改為“數(shù)字顯示欄”,F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3。其他為默認(rèn)值。 編輯文本:String屬性修改為“顯示”,其他屬性同上。 “初始化值”按鈕:String屬性修改為“初始化值”,Tag屬性修改為“run”,BackgroundColor屬性修改為綠色,F(xiàn)ontUnits屬

14、性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3。其他為默認(rèn)值。 “stop”按鈕:String屬性修改為“stop”,Tag屬性修改為“stop”,BackgroundColor屬性修改為紅色,其他同上。 程序界面控件布置如圖 4、回調(diào)函數(shù)設(shè)置 各控件的回調(diào)函數(shù)Callback為對(duì)象被選中時(shí)執(zhí)行的函數(shù)。 在“初始化值”按鈕上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks → CallBack(回調(diào)函數(shù)), 在函數(shù)function run_Callback(hObject, eventdata, handles)后面添加

15、如下程序: set(handles.edit1,'String',num2str(get(handles.slider1,'Value'))); 在滾動(dòng)條上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks → CallBack(回調(diào)函數(shù)), 在函數(shù)function slider1 _Callback(hObject, eventdata, handles)后面添加如下程序: set(handles.edit1,'String',num2str(get(handles.slider1,'Value'))) 在編輯文本上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks → CallB

16、ack(回調(diào)函數(shù)), 在函數(shù)function edit1_ Callback(hObject, eventdata, handles)后面添加如下程序: val=str2double(get(handles.edit1,'String')); if isnumeric(val)&length(val)==1&val>=get(handles.slider1,'Min')&val<=get(handles.slider1,'Max') set(handles.slider1,'Value',val); else set(handles.edit1,'String','

17、no number') end 在“stop”按鈕上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks → CallBack(回調(diào)函數(shù)), 在函數(shù)function stop _ Callback(hObject, eventdata, handles)后面添加如下程序: close 5、 保存并運(yùn)行GUI 單擊工具欄的運(yùn)行按鈕,按照提示保存后,運(yùn)行并驗(yàn)證程序功能。 撥動(dòng)滾動(dòng)條,編輯文本內(nèi)顯示滾輪的當(dāng)前數(shù)值;在編輯文本里輸入0~10任意一數(shù)字,滾動(dòng)條的滾輪將移到該數(shù)字的位置。 如果在編輯文本內(nèi)輸入的數(shù)字不在0~10之間,編輯文本將提示“no number”;任何時(shí)刻單擊“初始化

18、值”按鈕,滾動(dòng)條和編輯文本都?xì)w零。 運(yùn)行結(jié)果如圖所示。 一、圖形對(duì)象句柄函數(shù) 1.圖形對(duì)象句柄函數(shù) 函數(shù)名稱(chēng) 說(shuō)明 函數(shù)名稱(chēng) 說(shuō)明 gcf 獲得當(dāng)前圖形窗口的句柄 gcbf 獲得當(dāng)前正在調(diào)用的圖形的句柄 gca 獲得當(dāng)前坐標(biāo)軸的句柄 gco 獲得當(dāng)前對(duì)象的句柄 gcbo 獲得當(dāng)前正在調(diào)用的對(duì)象的句柄 函數(shù)名稱(chēng) 函數(shù)格式 說(shuō)明 delete delete(h) 刪除句柄所對(duì)應(yīng)的圖形對(duì)象。h為對(duì)象句柄 close close(h) 關(guān)閉句柄所對(duì)應(yīng)的圖形對(duì)象。h為對(duì)象句柄 findobj h=findobj(‘Pr

19、operName’, ‘P’) 查找具有某種屬性的圖形對(duì)象句柄。ProperName為對(duì)象的某一個(gè)屬性(通常使用tag),P為該屬性的屬性值,h為得到的句柄 get PropertyValue=get(handle, ‘Name’) 獲取指定圖形對(duì)象某個(gè)指定屬性的屬性值。其中handle為圖形對(duì)象的句柄、Name為某個(gè)屬性名稱(chēng)、PropertyValue為返回的屬性值 set set(handle) 顯示指定圖形對(duì)象所有可設(shè)置的屬性名稱(chēng)及其可能取值。handle為圖形對(duì)象的句柄 P=set(handle, ‘ProperName’) 顯示指定圖形對(duì)象某個(gè)屬性的取值。handl

20、e為圖形對(duì)象的句柄,ProperName為屬性,P為返回的屬性值 set(handle,‘Name1’,Value1,‘Name2’, Value2, ‘Name3’,Value3,...) 設(shè)置指定圖形對(duì)象的某個(gè)屬性。handle為圖形對(duì)象的句柄,Name1為某個(gè)屬性,Value1為設(shè)置的屬性值,其他參數(shù)相同 圖形對(duì)象屬性: 1.屬性名與屬性值 MATLAB給每種對(duì)象的每一個(gè)屬性規(guī)定了一個(gè)名字,稱(chēng)為屬性名,而屬性名的取值稱(chēng)為屬性值。 例如:LineStyle是曲線對(duì)象的一個(gè)屬性名,決定線形,可以是-、:、-.、--等。 注:屬性名的寫(xiě)法不區(qū)分大小寫(xiě)。此外,屬性名

21、要用單撇號(hào)括起來(lái)。 2.屬性的操作 ① set函數(shù)重設(shè)對(duì)象屬性,調(diào)用格式為: set(句柄,屬性名1,屬性值1,屬性名2,屬性值2,…) 其中句柄用于指明要操作的圖形對(duì)象。如果在調(diào)用set函數(shù)時(shí)省略全部屬性名和屬性值,則將顯示出句柄所有的允許屬性。 ② get函數(shù)獲取屬性值,調(diào)用格式為: V=get(句柄,屬性名) 其中V是返回的屬性值。如果在調(diào)用get函數(shù)時(shí)省略屬性名,則將返回句柄所有的屬性值。 例如,繪制正弦曲線, x=0:pi/10:2*pi; h=plot(x,sin(x)); set(h, 'Color', 'r', 'LineStyle', ':

22、', 'Marker', 'p'); col=get(h, 'Color'); 圖形窗口對(duì)象 建立圖形窗口對(duì)象使用figure函數(shù),其調(diào)用格式為: 句柄變量=figure(屬性名1,屬性值1,屬性名2,屬 性值2,…) MATLAB通過(guò)對(duì)屬性的操作來(lái)改變圖形窗口的形式。也可以使用figure函數(shù)按MATLAB缺省的屬性值建立圖形窗口:figure 或 句柄變量=figure 要關(guān)閉圖形窗口,使用close函數(shù),其調(diào)用格式為:close(窗口句柄) 另外,close all 命令可以關(guān)閉所有的圖形窗口,clf命令則是清除當(dāng)前圖形窗口的內(nèi)容,但不關(guān)

23、閉窗口。 例3: 建立一個(gè)圖形窗口。該圖形窗口沒(méi)有菜單條,標(biāo)題名稱(chēng)為“我的圖形窗口”,起始于屏幕左下角、寬度和高度分別為300像素點(diǎn)和150像素點(diǎn),背景顏色為綠色,且當(dāng)用戶(hù)從鍵盤(pán)按下任意一個(gè)鍵時(shí),將顯示“Hello,Kebord Key Pressed.”字樣。 命令如下: hf=figure('Color',[0,1,0],'Position',[1,1,300,150],... 'Name','圖形窗口示例','NumberTitle','off', 'MenuBar','none', ... 'KeyPressFcn', 'disp(''Hello,Keyboard Ke

24、y Pressed.'')'); 菜單 : MATLAB可以創(chuàng)建兩種菜單:下拉式菜單和上下文(即彈出式)菜單。 在GUIDE窗口中,單擊Tools→Menu Editor…選項(xiàng)、或者單擊工具欄中的菜單編輯器圖標(biāo) 。在打開(kāi)的菜單編輯器中,單擊 新菜單圖標(biāo),選中Untitled1菜單項(xiàng)。 Menu Bar選項(xiàng)卡 (1)Label:顯示菜單項(xiàng)的標(biāo)識(shí)字符串,在標(biāo)識(shí)字符串中的某字母前加&字符則定義一個(gè)快捷鍵,由〈Alt〉鍵+該字符來(lái)激活。 (2)Tag:菜單項(xiàng)的標(biāo)識(shí)項(xiàng)。 (3)Accelerator:定義菜單項(xiàng)的熱鍵,與〈Ctrl〉鍵組合使用。 (4)Sepa

25、rator above this item:在當(dāng)前菜單項(xiàng)前是否顯示一個(gè)分隔符,默認(rèn)是不顯示。 (5)Check mark this item:在當(dāng)前菜單項(xiàng)前是否顯示校驗(yàn)標(biāo)記,默認(rèn)是不顯示。 (6)Enable this item:設(shè)置菜單項(xiàng)使能狀態(tài),默認(rèn)是使能。 (7)Callback:設(shè)置菜單回調(diào)函數(shù)。 (8)More options:設(shè)置菜單屬性。單擊該按鈕,可打開(kāi)菜單的屬性設(shè)置對(duì)話(huà)框。 Context Menus選項(xiàng)卡用于創(chuàng)建上下文(彈出式)菜單,多數(shù)是用鼠標(biāo)右鍵單擊某個(gè)圖形對(duì)象時(shí),在屏幕上彈出的菜單。 這種菜單出現(xiàn)的位置是不固定的,而且總是和某個(gè)圖形對(duì)象的UICont

26、extMenu屬性相聯(lián)系。 先創(chuàng)建上下文菜單,再將圖形對(duì)象的UIContextMenu屬性設(shè)置為菜單的標(biāo)記。 另外,用戶(hù)可以使用或保留圖形窗口標(biāo)準(zhǔn)菜單。 在GUI設(shè)計(jì)窗口編輯區(qū)的空白處雙擊鼠標(biāo)(不要選擇任何控件),打開(kāi)圖形窗口的屬性列表,設(shè)置Menu Bar屬性為figure即可。 例4:現(xiàn)將例1里的按鈕y=sin(x)和按鈕y=cos(x)合并到Run按鈕,通過(guò)Run按鈕的上下文菜單來(lái)選擇y=sin(x) 和y=cos(x)。 跟我練: 題意分析 將按鈕y=cos(x)刪除,將按鈕y=sin(x)改做Run按鈕,同時(shí)在Run按鈕鏈接一個(gè)上下文菜單來(lái)實(shí)現(xiàn)原來(lái)的按鈕

27、y=sin(x)和按鈕y=cos(x)的繪圖功能。 創(chuàng)建菜單 打開(kāi)菜單編輯器Menu Editor →上下文菜單Context Menus →點(diǎn)擊Untitled_1 →將UIContextMenu Property里的Tag修改為tu →點(diǎn)擊UIContextMenu里的Callback的View →編輯M文件,添加如下程序內(nèi)容: [x,map]=imread('flower.jpg'); imshow(x) 點(diǎn)擊菜單編輯器Menu Editor的New Menu Item,→添加菜單子項(xiàng)sin(x) →將UIContextMenu Property里的屬性

28、Label修改為sin (x)→屬性Tag修改為sin(x) →點(diǎn)擊Callback后的View →編輯M文件,添加如下程序內(nèi)容: x=0:0.01:2*pi; y=sin(x); plot(x,y) title('y=sin(x)'); xlabel('坐標(biāo)x'); ylabel('坐標(biāo)y'); 在默認(rèn)情況顯示y=sin(x)曲線。 點(diǎn)擊菜單編輯器Menu Editor的New Menu Item,→添加菜單子項(xiàng)cos(x) →將UIContextMenu Property里的屬性Label修改為cos (x)→屬性Tag修改為cos(x) →點(diǎn)擊Callback后的View

29、 →編輯M文件,添加如下程序內(nèi)容: x=0:0.01:2*pi; y=cos(x); plot(x,y) title('y=cos(x)'); xlabel('坐標(biāo)x'); ylabel('坐標(biāo)y'); 界面設(shè)計(jì) 把例1的GUI設(shè)計(jì)窗口里y=cos(x)按鈕刪除。打開(kāi)y=sin(x)按鈕的屬性編輯器Property Inspercter,將其String屬性改為Run;屬性UIContextMenu的屬性值改為tu,其他不變。 回調(diào)函數(shù)設(shè)置 在控件Run上單擊右鍵→View Callbacks,在函數(shù)function run_Callback(hObject, eve

30、ntdata, handles)后面添加如下程序: [x,map]=imread('flower.jpg'); imshow(x) 這樣當(dāng)用戶(hù)點(diǎn)擊Run控件時(shí),界面就會(huì)默認(rèn)地顯示一張圖片 保存并運(yùn)行GUI 單擊工具欄的運(yùn)行按鈕,按照提示保存后,運(yùn)行并驗(yàn)證程序功能。 繼續(xù)在例4中添加一個(gè)菜單,改變背景顏色,若不合適就返回原來(lái)的顏色 打開(kāi)菜單編輯器Menu Editor →菜單 Menu Bar →點(diǎn)擊Untitled_1 →將UIMenu Property里的Tag修改為color0 點(diǎn)擊菜單編輯器Menu Editor的New Menu Item,→添加菜單子項(xiàng)r

31、r →將UIMenu Property里的屬性Label修改為rr→屬性Tag修改為rr →點(diǎn)擊Callback后的View →編輯M文件,function rr_Callback(hObject, eventdata, handles) 添加如下程序內(nèi)容: set(gcf,'color','r') 點(diǎn)擊菜單編輯器Menu Editor的New Menu Item,→添加菜單子項(xiàng)g1 →將UIMenu Property里的屬性Label修改為g1→屬性Tag修改為g1→點(diǎn)擊Callback后的View →編輯M文件,function g1_Callback(hObject, eve

32、ntdata, handles) 添加如下程序內(nèi)容: set(gcf,'color',‘g') 點(diǎn)擊菜單編輯器Menu Editor的New Menu Item,→添加菜單子項(xiàng)re →將UIMenu Property里的屬性Label修改為re→屬性Tag修改為rr →點(diǎn)擊Callback后的View →編輯M文件,function kt8_1_OpeningFcn(hObject, eventdata, handles, varargin)添加如下程序內(nèi)容: xx=get(gcf,'color'); handles.xx=xx; 在function re_Cal

33、lback(hObject, eventdata, handles) 添加如下程序內(nèi)容: xx=handles.xx; set(gcf,'color',xx) 函數(shù)功能 函數(shù)格式 說(shuō)明 打開(kāi)文件 fname=uigetfile 列出當(dāng)前目錄下MATLAB能識(shí)別的所有文件,fname為返回選定的文件名 uigetfile(‘FilterSpec’, ‘DTitle’) 列出當(dāng)前目錄下由參數(shù)FilterSpec指定類(lèi)型的文件,DTitle為打開(kāi)對(duì)話(huà)框的標(biāo)題 保存文件 [F,P]= uiputfile(‘InitFile’, ‘DTitle’) 顯示用于保存文件

34、的對(duì)話(huà)框,InitFile為保存類(lèi)型,DTitle為對(duì)話(huà)框的標(biāo)題。F為返回的文件名,P為文件路徑。F,P可缺省 顏色設(shè)置 uisetcolor(h, ‘DTitle’) 設(shè)置圖形對(duì)象的顏色。h為圖形對(duì)象句柄,DTitle為打開(kāi)的顏色對(duì)話(huà)框標(biāo)題 字體設(shè)置 uisetfont(h, ‘DTitle’) 設(shè)置文本字符串、坐標(biāo)軸或控件的字體。參數(shù)同顏色設(shè)置 打印預(yù)覽 printpreview 當(dāng)前圖形窗口的打印預(yù)覽對(duì)話(huà)框 打印設(shè)置 printdlg 當(dāng)前圖形窗口的打印對(duì)話(huà)框 函數(shù)功能 函數(shù)格式 說(shuō)明 幫助 helpdlg(‘string’,‘DTitle’) 顯

35、示幫助信息對(duì)話(huà)框。參數(shù)string為信息對(duì)話(huà)框,參數(shù)DTitle為對(duì)話(huà)框標(biāo)題 錯(cuò)誤信息 errordlg(‘string’,‘DTitle’) 顯示錯(cuò)誤信息對(duì)話(huà)框。參數(shù)同幫助對(duì)話(huà)框 信息提示 msgbox(‘string’,‘DTitle’,‘icon’) 顯示信息提示對(duì)話(huà)框。參數(shù)icon用于指定圖標(biāo),有none(默認(rèn),無(wú)圖標(biāo))、error_help、warn、custom(用戶(hù)自定義)四種 問(wèn)題提示 questdlg(‘string’,‘DTitle’, ‘str1’, ‘str2’, ‘str3’, ‘default’) 顯示問(wèn)題提示對(duì)話(huà)框。參數(shù)str1、str2、 st

36、r3代表三個(gè)按鈕,default必須是這三個(gè)按鈕中的一個(gè),表示默認(rèn)選項(xiàng) 警告信息 warndlg(‘string’,‘DTitle’) 顯示警告信息對(duì)話(huà)框 進(jìn)程條 waitbar(x ,‘DTitle’) 以圖形方式顯示運(yùn)算或處理的進(jìn)程。參數(shù)x為進(jìn)程的比例長(zhǎng)度,必須在0~1之間;參數(shù)DTitle為進(jìn)程條標(biāo)題 waitbar(x ,‘h’) 在同一進(jìn)程條中,顯示進(jìn)程的變化。參數(shù)h為進(jìn)程條的句柄。常用在循環(huán)語(yǔ)句中 變量輸入 inputdlg(prompt ,DTitle, line ,def ,‘resize’) 顯示變量輸入對(duì)話(huà)框。參數(shù)prompt定義輸入窗口及顯示信息,

37、DTitle為對(duì)話(huà)框標(biāo)題,line定義每個(gè)窗口的行數(shù),def為輸入的數(shù)據(jù),resize定義對(duì)話(huà)框大小是否可調(diào),可選on或off 將例4中的stop按鈕上添加一個(gè)停止對(duì)話(huà)框 編輯M文件function stop_Callback(hObject, eventdata, handles)添加如下程序內(nèi)容: hr=questdlg('親,你要停止嗎?','stop','no','yes',1) if hr=='yes' close else end 例5:做一個(gè)進(jìn)程條,顯示進(jìn)程速度,進(jìn)程顯示完后,自動(dòng)關(guān)閉 clear clc h=waitbar(0,正在計(jì)算,請(qǐng)等待..

38、...') for i=1:10000 waitbar(i/1000,h) end close(h) MATLAB圖形用戶(hù)界面設(shè)計(jì) 1. 建立用戶(hù)菜單 要建立用戶(hù)菜單可用uimenu函數(shù),因其調(diào)用方法不同,該函數(shù)可以用于建立一級(jí)菜單項(xiàng)和子菜單項(xiàng)。 建立一級(jí)菜單項(xiàng)的函數(shù)調(diào)用格式為: 一級(jí)菜單項(xiàng)句柄=uimenu(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,…) 建立子菜單項(xiàng)的函數(shù)調(diào)用格式為: 子菜單項(xiàng)句柄=uimenu(一級(jí)菜單項(xiàng)句柄,屬性名1,屬性值1,屬性名2,屬性值2,…) 2. 快捷菜單 快捷菜單是用鼠標(biāo)右鍵單擊某對(duì)象時(shí)在屏幕上彈出的

39、菜單。這種菜單出現(xiàn)的位置是不固定的,而且總是和某個(gè)圖形對(duì)象相聯(lián)系。 在MATLAB中,可以使用uicontextmenu函數(shù)和圖形對(duì)象的 UIContextMenu屬性來(lái)建立快捷菜單,具體步驟為: (1) 利用uicontextmenu函數(shù)建立快捷菜單。 (2) 利用uimenu函數(shù)為快捷菜單建立菜單項(xiàng)。 (3) 利用set函數(shù)將該快捷菜單和某圖形對(duì)象聯(lián)系起來(lái)。 例6: 繪制曲線y=2sin(5x)sinx,并建立一個(gè)與之相聯(lián)系的快捷菜單,用以控制曲線的線型和曲線寬度。 x=0:pi/100:2*pi; y=2*sin(5*x).*sin(x); hl=plot(x,y)

40、; hc=uicontextmenu; %建立快捷菜單 hls=uimenu(hc,'Label','線型'); %建立菜單項(xiàng) hlw=uimenu(hc,'Label','線寬'); uimenu(hls,'Label','虛線','Call','set(hl,''LineStyle'','':'');'); uimenu(hls,'Label','實(shí)線','Call','set(hl,''LineStyle'',''-'');'); uimenu(hlw,'Label','加寬','Call','set(hl,''LineWidth'',2);')

41、; uimenu(hlw,'Label','變細(xì)','Call','set(hl,''LineWidth'',0.5);'); set(hl,'UIContextMenu',hc); %將該快捷菜單和曲線對(duì)象聯(lián)系起來(lái) 程序運(yùn)行后,若將鼠標(biāo)指針指向線條并單擊右鍵,則彈出快捷菜單。 1.建立控件對(duì)象 MATLAB提供了用于建立控件對(duì)象的函數(shù)uicontrol,其調(diào)用格式為: 對(duì)象句柄=uicontrol(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,…) 其中各個(gè)屬性名及可取的值和前面介紹的uimenu函數(shù)相似,但也不盡相同,下面將介紹一些常用的屬性。 例7:在一個(gè)

42、圖形窗口中繪制一個(gè)正弦曲線,并設(shè)置一個(gè)文本框,通過(guò)顏色選擇對(duì)話(huà)框設(shè)置曲線及文本框內(nèi)文字的顏色。 跟我練: 本例用到了函數(shù)uisetfont,其調(diào)用格式: h=uisetfont(h1,'title') 利用函數(shù)uisetcolor設(shè)置顏色對(duì)話(huà)框,其調(diào)用格式: hc=uisetcolor(h,’title’) 利用函數(shù)設(shè)置控件: hm=uicontrol(Hf,'PropertyName1',value1,'PropertyName2',value2,...) 。 程序內(nèi)容: clear hf=figure('position',[300 100 500 400],'name

43、','uicontrol1','numbertitle','off'); ha=axes('position',[0.4 0.1 0.5 0.5],'box','on'); %設(shè)置曲線顏色 x=0:0.01:2*pi; y=sin(x); h1=plot(x,y); hc=uisetcolor(h1,'選擇曲線顏色'); %設(shè)置字體及顏色 htt=uicontrol(hf,'style','text','string','練習(xí)練習(xí)?','position',[80 120 100 60]); hc=uisetcolor(htt,'選擇字體顏色'); htt1=uisetfo

44、nt(htt,'字體選擇'); 例8、本例實(shí)現(xiàn)在界面上不斷顯示一系列的圖片 跟我練: 1、利用imread函數(shù)從當(dāng)前路徑或搜索路徑下讀取圖片文件。 2、利用imshow函數(shù)顯示圖片 3、利用pause函數(shù)控制圖片顯示的頻率。 4、界面設(shè)計(jì) (1)新建一個(gè)GUI界面 在MATLAB操作桌面上,單擊File → new → GUI選項(xiàng),選擇Blank GUI(Default)模板,單擊“OK”按鈕,打開(kāi)GUI設(shè)計(jì)窗口。 (2)添加控件 用鼠標(biāo)從GUI設(shè)計(jì)窗口的組件面板中拖動(dòng)坐標(biāo)軸(Axes)和2個(gè)命令按鈕(pushbutton)控件。 (3)排列控件 選中兩

45、個(gè)命令按鈕(pushbutton)控件,使用幾何位置排列工具,排列圖標(biāo)。 (4)設(shè)置控件屬性 雙擊需要屬性設(shè)置的控件,打開(kāi)對(duì)象屬性檢查器設(shè)置控件屬性。 “圖片顯示”按鈕:String屬性修改為“圖片顯示”,Tag屬性修改為“show”,F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3。其他為默認(rèn)值。 “STOP”按鈕:String屬性修改為“STOP”,Tag屬性修改為“stop”,F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3,其他為默認(rèn)值。界面布

46、置如圖所示: (5)回調(diào)函數(shù)設(shè)置 在“圖片顯示”按鈕上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks → CallBack(回調(diào)函數(shù)), 在函數(shù)function show_Callback(hObject, eventdata, handles)后面添加如下程序: [X,map]=imrea d('pdh1.jpg'); X2=imread('pdh2.jpg'); k=1; for n=1:4 imshow(X,map) pause(1) imshow(X2) pause(1) end 在“STOP”按鈕上點(diǎn)擊右鍵,下拉菜單選擇View CallBa

47、cks → CallBack(回調(diào)函數(shù)), 在函數(shù)function stop_Callback(hObject, eventdata, handles)后面添加如下程序: close 6、 保存并運(yùn)行GUI 單擊工具欄的運(yùn)行按鈕,按照提示保存后,運(yùn)行并驗(yàn)證程序功能。 運(yùn)行程序,點(diǎn)擊“圖片顯示”按鈕,運(yùn)行結(jié)果如圖所示。 (二)、自己練習(xí) 1、使用matlab7的幫助系統(tǒng)學(xué)習(xí)圖形對(duì)象的Name和NumberTitle屬性,創(chuàng)建一個(gè)圖形,繪制曲線,其中。修改前邊所題的兩個(gè)屬性,使得圖形的標(biāo)題為“圖形窗口”。 2、編制一個(gè)程序,使得“圖形”窗口的默認(rèn)底色為橘黃色,默認(rèn)的線寬為

48、4個(gè)像素,并繪制圖形。 3、使用matlab7的幫助系統(tǒng)學(xué)習(xí)Axes對(duì)象的CurrentPoint屬性的使用方法,并使用該屬性創(chuàng)建一個(gè)坐標(biāo)軸對(duì)象,在該坐標(biāo)軸內(nèi)用線將連續(xù)的鼠標(biāo)單擊連接。使用waitforbuttonpress命令等待用戶(hù)的鼠標(biāo)單擊,并在每次單擊之后刷新圖形,當(dāng)按鍵盤(pán)上的任意鍵時(shí)終止程序。 4、創(chuàng)建一個(gè)GUI,使用一個(gè)彈出式控件來(lái)選擇GUI的底色。給該GUI添加一個(gè)菜單,該菜單有2個(gè)子菜單,可以選擇顏色和線型。 5、創(chuàng)建一個(gè)GUI,繪制曲線,該GUI將提示用戶(hù)輸入a,b,c,的值,并輸入x的取值范圍。 6、設(shè)計(jì)一個(gè)表現(xiàn)漸進(jìn)過(guò)程的進(jìn)程條。 7、不使用按鈕組,建立三個(gè)具有互

49、斥功能的單選按鈕。互斥功能就是按下一個(gè)按鈕,另外兩個(gè)按鈕彈起。 8、設(shè)計(jì)一個(gè)帶有繪圖、操作和退出菜單的圖形用戶(hù)界面,其中“繪圖”菜單中有“正弦曲線”和“余弦曲線”兩個(gè)子菜單,分別控制在圖形窗口畫(huà)出正弦和余弦曲線;“操作”菜單中有“添加網(wǎng)格”和“清除網(wǎng)格”兩個(gè)子菜單,用于添加和清除網(wǎng)格。單擊“退出”菜單出現(xiàn)一個(gè)問(wèn)題提示對(duì)話(huà)框,有“是”,“否”兩個(gè)按鈕,單擊“是”按鈕退出系統(tǒng),單擊“否”按鈕不進(jìn)行任何操作。 9、設(shè)計(jì)圖形用戶(hù)界面,在列表框中選擇函數(shù)類(lèi)型(默認(rèn)是正弦函數(shù))后,單擊“繪制圖形”按鈕,繪制出函數(shù)曲線,單擊“清除圖形”按鈕,清除曲線,但保留坐標(biāo)軸。 10、設(shè)計(jì)圖形用戶(hù)界面。在幅值、頻

50、率輸入框中輸入數(shù)值后,單擊“繪制圖形”按鈕,繪制出正弦曲線;單擊“清除圖形”按鈕,清除曲線,保留坐標(biāo)軸。如果沒(méi)有輸入幅值或頻率數(shù)值就單擊“繪制圖形”按鈕,不能繪制圖形,并彈出錯(cuò)誤對(duì)話(huà)框。 11、仿真x(t)=sin(t)sin(10t) 的波形。 12、設(shè)計(jì)一個(gè)數(shù)字電路的8線----3線編碼器,并Simulink仿真。 13、練習(xí)書(shū)上例7-3 14、建立階躍信號(hào) u(t-2) 積分運(yùn)算仿真模型,并觀察信號(hào)波形。 15、仿真y(t)=sin(t)-sin(2t)的波形。 16、仿真函數(shù)sin(x)e-x 的波形。(提示:使用User-Defined Functions模塊庫(kù)下的Fcn模塊生成e-x). 四、思考題 1、什么是圖形句柄?圖形句柄有什么用途?如何設(shè)置和獲取指定句柄對(duì)象的屬性? 2、回調(diào)函數(shù)的用途是什么?如何設(shè)置? 3、簡(jiǎn)述GUI控件的種類(lèi),其各自的功能是什么? 五、實(shí)驗(yàn)要求 1.復(fù)習(xí)本章相關(guān)知識(shí)。 2.編寫(xiě)程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。 3.撰寫(xiě)實(shí)驗(yàn)報(bào)告。 15

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!