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)康模?、了解句柄圖形對(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)布局(Layout)編輯器 (3)GUIDE模板介紹 (4)運(yùn)行GUI 3. 創(chuàng)建GUI對(duì)象 (1)GUI窗口的布局 改變GUI窗口的

2、大小 控件的添加和對(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有三種方法:在MATLAB操作桌面,單擊FileNewGUI選項(xiàng)、單擊工具欄上的圖標(biāo) 、在命令窗口輸入guide后回車(chē),出現(xiàn)GUIDE Quick Start對(duì)話框。 Create new GUI選項(xiàng)卡包含四個(gè)初始化設(shè)計(jì)模板:Blank GUI(Default)創(chuàng)建一個(gè)空

3、白的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ì)話框。2)Open Existing GUI選項(xiàng)卡含有一個(gè)Recenty opened files(最近打開(kāi)過(guò)的GUI文件)選擇框。 選擇Blank GUI(Default)模板,單擊【OK】按鈕,打開(kāi)GUI設(shè)計(jì)窗口。 單擊設(shè)計(jì)窗口FilePreferences選項(xiàng),打開(kāi)Preferences對(duì)話框,選中Show name in component palette選項(xiàng),在組件面

4、板中顯示控件名稱(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文件,包含對(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

5、Text)(7)靜態(tài)文本框(Static Text)(8)彈出式菜單(Pop-Up Menu)(9)列表框(Listbox)(10)坐標(biāo)軸(Axes)(11)面板(Panel)(12)按鈕組(Button Group)(13)ActiveX控件(ActiveX Control)對(duì)象屬性檢查器設(shè)置 :利用對(duì)象屬性檢查器,可以查看每個(gè)對(duì)象的屬性值,也可以修改、設(shè)置對(duì)象的屬性值。 選中某個(gè)控件,單擊GUI設(shè)計(jì)窗口工具欄上 按鈕、單擊ViewProperty Inspector子菜單,直接雙擊控件,都可以打開(kāi)對(duì)象屬性檢查器。 界面制作包括界面設(shè)計(jì)和程序?qū)崿F(xiàn),一般制作步驟如下: 分析界面所要求實(shí)現(xiàn)的主要

6、功能,明確設(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ù)上面的界面制作步驟,制作一個(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ì)窗口的組

7、件面板中拖動(dòng)坐標(biāo)軸(Axes),3個(gè)命令按鈕(PushButton)控件。(3)排列控件 選中兩個(gè)或兩個(gè)以上需要排列的控件,單擊設(shè)計(jì)窗口的工具或單擊ToolsAlign Objects菜單項(xiàng),打開(kāi)排列工具對(duì)話框, (4)設(shè)置控件屬性雙擊需要屬性設(shè)置的控件,打開(kāi)對(duì)象屬性檢查器,設(shè)置控件屬性?!皔=sin(x)”按鈕:String屬性修改為y=sin(x),F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3,其他為默認(rèn)值?!皔=tan(x)”編輯文本:String屬性修改為y=tan(x),其他屬性同上。“STOP”按鈕:Strin

8、g屬性修改為“stop”,Tag屬性修改為“stop”,其他同上。控件設(shè)置效果如圖所示:第三步,回調(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)后面添加如下程

9、序:x=0:0.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=tan(x)控件的Property Inspe

10、rcter里的BackgroundColor設(shè)置為綠色的例2:設(shè)計(jì)一個(gè)滾動(dòng)條與一個(gè)編輯文本框互相傳遞并顯示010間的數(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):在圖形界面中添加該控件之后,該控件的屬性相當(dāng)于其他語(yǔ)言設(shè)計(jì)中的文本框?qū)?/p>

11、性,允許用戶(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)。(4)設(shè)置控件屬性雙擊需要屬性設(shè)置的控件,打開(kāi)對(duì)象屬性檢查器,設(shè)置控件屬性。滾動(dòng)條:Background

12、Color屬性修改為深藍(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屬性修改為“顯示”,其他屬性同上?!俺跏蓟怠卑粹o:String屬性修改為“初始化值”,Tag屬性修改為“run”,BackgroundColor屬性修改為綠色,F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3。其他為默認(rèn)值?!皊top”按鈕:S

13、tring屬性修改為“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)后面添加如下程序:set(handles.edit1,String,num2str(get(handles.slider1,Value);在滾動(dòng)條上點(diǎn)擊右鍵,下拉菜單選擇Vie

14、w 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 CallBack(回調(diào)函數(shù)),在函數(shù)function edit1_ Callback(hObject, eventdata, handles)后面添加如下程序:val=str2double(get(handles.edit1,St

15、ring);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,no number) end在“stop”按鈕上點(diǎn)擊右鍵,下拉菜單選擇View CallBacks CallBack(回調(diào)函數(shù)),在函數(shù)function stop _ Callback(hObject, eventdata, handles)后面添加如下程序:close5、 保存并運(yùn)

16、行GUI單擊工具欄的運(yùn)行按鈕,按照提示保存后,運(yùn)行并驗(yàn)證程序功能。撥動(dòng)滾動(dòng)條,編輯文本內(nèi)顯示滾輪的當(dāng)前數(shù)值;在編輯文本里輸入010任意一數(shù)字,滾動(dòng)條的滾輪將移到該數(shù)字的位置。如果在編輯文本內(nèi)輸入的數(shù)字不在010之間,編輯文本將提示“no number”;任何時(shí)刻單擊“初始化值”按鈕,滾動(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ō)明deletedelete(h)刪除句柄所

17、對(duì)應(yīng)的圖形對(duì)象。h為對(duì)象句柄closeclose(h)關(guān)閉句柄所對(duì)應(yīng)的圖形對(duì)象。h為對(duì)象句柄findobjh=findobj(ProperName, P)查找具有某種屬性的圖形對(duì)象句柄。ProperName為對(duì)象的某一個(gè)屬性(通常使用tag),P為該屬性的屬性值,h為得到的句柄getPropertyValue=get(handle, Name)獲取指定圖形對(duì)象某個(gè)指定屬性的屬性值。其中handle為圖形對(duì)象的句柄、Name為某個(gè)屬性名稱(chēng)、PropertyValue為返回的屬性值setset(handle)顯示指定圖形對(duì)象所有可設(shè)置的屬性名稱(chēng)及其可能取值。handle為圖形對(duì)象的句柄P=set(

18、handle, ProperName)顯示指定圖形對(duì)象某個(gè)屬性的取值。handle為圖形對(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ū)分大

19、小寫(xiě)。此外,屬性名要用單撇號(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, :, Marker, p); col=get(h, Col

20、or);圖形窗口對(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)閉窗口。例3: 建立一個(gè)圖形窗口。該圖形窗口沒(méi)有菜單條,標(biāo)題名稱(chēng)為“我的圖形窗口”,起始于屏幕左下角、寬度和高度分別為300像

21、素點(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 Key Pressed.);菜單 :MATLAB可以創(chuàng)建兩種菜單:下拉式菜單和上下文(即彈出式)菜單。 在GUIDE窗口中,單擊ToolsMenu Editor選項(xiàng)、或者單擊工具欄中的菜單編輯器圖標(biāo) 。在打開(kāi)的

22、菜單編輯器中,單擊 新菜單圖標(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)Separator 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è)

23、置菜單回調(diào)函數(shù)。(8)More options:設(shè)置菜單屬性。單擊該按鈕,可打開(kāi)菜單的屬性設(shè)置對(duì)話框。Context Menus選項(xiàng)卡用于創(chuàng)建上下文(彈出式)菜單,多數(shù)是用鼠標(biāo)右鍵單擊某個(gè)圖形對(duì)象時(shí),在屏幕上彈出的菜單。 這種菜單出現(xiàn)的位置是不固定的,而且總是和某個(gè)圖形對(duì)象的UIContextMenu屬性相聯(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=si

24、n(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)的按鈕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

25、(flower.jpg); imshow(x)點(diǎn)擊菜單編輯器Menu Editor的New Menu Item,添加菜單子項(xiàng)sin(x) 將UIContextMenu Property里的屬性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) 將UICont

26、extMenu Property里的屬性Label修改為cos (x)屬性Tag修改為cos(x) 點(diǎn)擊Callback后的View 編輯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,在函

27、數(shù)function run_Callback(hObject, eventdata, 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,添

28、加菜單子項(xiàng)rr 將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, eventdata, handles

29、) 添加如下程序內(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_Callback(hObject, eventdata, handles) 添加如下程序內(nèi)容

30、: 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ì)話框的標(biāo)題保存文件F,P= uiputfile(InitFile, DTitle)顯示用于保存文件的對(duì)話框,InitFile為保存類(lèi)型,DTitle為對(duì)話框的標(biāo)題。F為返回的文件名,P為文件路徑。F,P可缺省顏色設(shè)置uisetcolor(h, DTitle)設(shè)置圖形對(duì)

31、象的顏色。h為圖形對(duì)象句柄,DTitle為打開(kāi)的顏色對(duì)話框標(biāo)題字體設(shè)置uisetfont(h, DTitle)設(shè)置文本字符串、坐標(biāo)軸或控件的字體。參數(shù)同顏色設(shè)置打印預(yù)覽printpreview當(dāng)前圖形窗口的打印預(yù)覽對(duì)話框打印設(shè)置printdlg當(dāng)前圖形窗口的打印對(duì)話框函數(shù)功能函數(shù)格式說(shuō)明幫助helpdlg(string,DTitle)顯示幫助信息對(duì)話框。參數(shù)string為信息對(duì)話框,參數(shù)DTitle為對(duì)話框標(biāo)題錯(cuò)誤信息errordlg(string,DTitle)顯示錯(cuò)誤信息對(duì)話框。參數(shù)同幫助對(duì)話框信息提示msgbox(string,DTitle,icon)顯示信息提示對(duì)話框。參數(shù)icon用于

32、指定圖標(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ì)話框。參數(shù)str1、str2、 str3代表三個(gè)按鈕,default必須是這三個(gè)按鈕中的一個(gè),表示默認(rèn)選項(xiàng)警告信息warndlg(string,DTitle)顯示警告信息對(duì)話框進(jìn)程條waitbar(x ,DTitle)以圖形方式顯示運(yùn)算或處理的進(jìn)程。參數(shù)x為進(jìn)程的比例長(zhǎng)度,必須在01之間;參數(shù)DTitle為進(jìn)程條標(biāo)題waitbar(x ,h)在同一進(jìn)程條中,顯示進(jìn)程的變化。參

33、數(shù)h為進(jìn)程條的句柄。常用在循環(huán)語(yǔ)句中變量輸入inputdlg(prompt ,DTitle,line ,def ,resize)顯示變量輸入對(duì)話框。參數(shù)prompt定義輸入窗口及顯示信息,DTitle為對(duì)話框標(biāo)題,line定義每個(gè)窗口的行數(shù),def為輸入的數(shù)據(jù),resize定義對(duì)話框大小是否可調(diào),可選on或off將例4中的stop按鈕上添加一個(gè)停止對(duì)話框編輯M文件function stop_Callback(hObject, eventdata, handles)添加如下程序內(nèi)容:hr=questdlg(親,你要停止嗎?,stop,no,yes,1)if hr=yescloseelseend例

34、5:做一個(gè)進(jìn)程條,顯示進(jìn)程速度,進(jìn)程顯示完后,自動(dòng)關(guān)閉clearclch=waitbar(0,正在計(jì)算,請(qǐng)等待.)for i=1:10000waitbar(i/1000,h)endclose(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. 快捷菜單 快捷菜

35、單是用鼠標(biāo)右鍵單擊某對(duì)象時(shí)在屏幕上彈出的菜單。這種菜單出現(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

36、);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););uimenu(hlw,Label,變細(xì),Call,set(hl,LineWidth,0.5););set(hl,UIContextMenu,hc); %將

37、該快捷菜單和曲線對(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è)圖形窗口中繪制一個(gè)正弦曲線,并設(shè)置一個(gè)文本框,通過(guò)顏色選擇對(duì)話框設(shè)置曲線及文本框內(nèi)文字的顏色。跟我練:本例用到了函數(shù)uisetfont,其調(diào)用格式:h=uisetfont(h1,title)利用函數(shù)uisetcolor設(shè)置顏色

38、對(duì)話框,其調(diào)用格式:hc=uisetcolor(h,title)利用函數(shù)設(shè)置控件:hm=uicontrol(Hf,PropertyName1,value1,PropertyName2,value2,.) 。程序內(nèi)容:clearhf=figure(position,300 100 500 400,name,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è)置字體及顏色ht

39、t=uicontrol(hf,style,text,string,練習(xí)練習(xí)?,position,80 120 100 60);hc=uisetcolor(htt,選擇字體顏色);htt1=uisetfont(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)添

40、加控件用鼠標(biāo)從GUI設(shè)計(jì)窗口的組件面板中拖動(dòng)坐標(biāo)軸(Axes)和2個(gè)命令按鈕(pushbutton)控件。(3)排列控件選中兩個(gè)命令按鈕(pushbutton)控件,使用幾何位置排列工具,排列圖標(biāo)。(4)設(shè)置控件屬性雙擊需要屬性設(shè)置的控件,打開(kāi)對(duì)象屬性檢查器設(shè)置控件屬性?!皥D片顯示”按鈕:String屬性修改為“圖片顯示”,Tag屬性修改為“show”,F(xiàn)ontUnits屬性改為normalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3。其他為默認(rèn)值?!癝TOP”按鈕:String屬性修改為“STOP”,Tag屬性修改為“stop”,F(xiàn)ontUnits屬性改為n

41、ormalized,F(xiàn)ontWeight屬性改為bold,F(xiàn)ontSize屬性改為0.3,其他為默認(rèn)值。界面布置如圖所示:(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)擊右鍵,下

42、拉菜單選擇View CallBacks CallBack(回調(diào)函數(shù)),在函數(shù)function stop_Callback(hObject, eventdata, handles)后面添加如下程序:close6、 保存并運(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)的線寬為4個(gè)像素,并

43、繪制圖形。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è)具有互斥功能的單選按鈕?;コ夤δ芫褪前?/p>

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

45、繪制出正弦曲線;單擊“清除圖形”按鈕,清除曲線,保留坐標(biāo)軸。如果沒(méi)有輸入幅值或頻率數(shù)值就單擊“繪制圖形”按鈕,不能繪制圖形,并彈出錯(cuò)誤對(duì)話框。11、仿真x(t)=sin(t)sin(10t) 的波形。12、設(shè)計(jì)一個(gè)數(shù)字電路的8線-3線編碼器,并Simulink仿真。13、練習(xí)書(shū)上例7-314、建立階躍信號(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)系電話: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),我們立即給予刪除!