《Matlab App Designer設(shè)計入門及實戰(zhàn)》課件 第4章 句柄圖形系統(tǒng)_第1頁
《Matlab App Designer設(shè)計入門及實戰(zhàn)》課件 第4章 句柄圖形系統(tǒng)_第2頁
《Matlab App Designer設(shè)計入門及實戰(zhàn)》課件 第4章 句柄圖形系統(tǒng)_第3頁
《Matlab App Designer設(shè)計入門及實戰(zhàn)》課件 第4章 句柄圖形系統(tǒng)_第4頁
《Matlab App Designer設(shè)計入門及實戰(zhàn)》課件 第4章 句柄圖形系統(tǒng)_第5頁
已閱讀5頁,還剩173頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第4章句柄圖形系統(tǒng)本章要點(diǎn)

MATLAB是一種面向?qū)ο蟮母呒売嬎銠C(jī)語言,其圖形窗口是由不同的對象(包括坐標(biāo)軸、文本、圖像和曲面等)組成的圖形界面,這些數(shù)據(jù)可視化技術(shù)中的各種圖形元素,實際上都是抽象圖形對象的實例,MATLAB為每個圖形對象分配一個標(biāo)識符,稱為句柄。句柄是圖形對象的標(biāo)識代碼,包含圖形對象的屬性信息,因此可通過句柄對該圖形對象的屬性進(jìn)行設(shè)置。本章要點(diǎn):⑴句柄圖形對象的層次結(jié)構(gòu)。⑵句柄圖形對象的基本操作。⑶句柄圖形對象的基本屬性。學(xué)習(xí)目標(biāo):⑴了解面向?qū)ο蟮乃季S方式及句柄圖形對象結(jié)構(gòu)。⑵掌握句柄圖形對象的操作,包括查找、獲取和設(shè)置屬性,復(fù)制和刪除圖形對象等。⑶掌握不同圖形對象屬性的設(shè)置和訪問。4.1句柄圖形對象MATLAB是一種面向?qū)ο蟮母呒売嬎銠C(jī)語言,其數(shù)據(jù)可視化技術(shù)中的各種圖形因素,實際上都是抽象圖像對象的實例。也就是說,繪圖函數(shù)將不同的曲線和曲面繪制在圖形窗口中,而圖形窗口是由不同的對象(如坐標(biāo)軸、曲線、曲面或文字等)組成的圖形界面,MATLAB給每個圖形對象分配一個標(biāo)識符,稱為句柄。那么,就可以通過句柄對該圖形對象的屬性進(jìn)行設(shè)置,也可以獲取其相關(guān)屬性值,從而更加自主地繪制各種圖形。4.1.1面向?qū)ο蟮乃季S方式

面向?qū)ο笫且环N程序設(shè)計方法,是相對于面向過程而言的。對象是客觀存在的事物或關(guān)系,比如書本是對象、鉛筆是對象、幾何圖形也是對象。每個對象都有與其他對象相同或不同的特征,這些特征稱為對象的屬性。如鉛筆這個對象有顏色和形狀等屬性,書本也有形狀屬性。

面向?qū)ο笳Z言刻畫客觀系統(tǒng)較為自然,相對于過程而言,更便于軟件擴(kuò)充與復(fù)用,因為過程可能經(jīng)常變化,稍有變化就不能直接重復(fù)調(diào)用這個過程。而對象更為穩(wěn)定,比如書本無論是新的還是用了多年的書本,都有顏色和形狀屬性。由于面向?qū)ο笳Z言有這樣的優(yōu)越性,所以它是目前主流的編程技術(shù)。4.1句柄圖形對象4.1.2句柄圖形對象結(jié)構(gòu)在MATLAB中,由圖形命令產(chǎn)生的每一個對象都是圖形對象,一幅圖形中的圖形對象可以被單獨(dú)操作。圖形對象是相互依賴的,通常,圖形中包括很多對象,它們組合在一起,形成更有意義的圖形。系統(tǒng)將每一個對象按樹形結(jié)構(gòu)組織起來。每個具體圖形不必包含每個對象,但每個圖形必須具備根對象和圖形窗口。圖形對象按父對象和子對象組成層次結(jié)構(gòu)。

根對象:也稱為root對象,它是計算機(jī)屏幕,是所有其他對象的父對象,根對象獨(dú)一無二,主要保存一些系統(tǒng)狀態(tài)和設(shè)置信息。

圖形窗口對象:也稱為figure對象,是根的子代,窗口數(shù)目不限,所有圖形窗口都是根屏幕的子代。

坐標(biāo)軸對象:figure對象的直接子對象,用于創(chuàng)建軸對象并返回句柄,軸的子代包括繪圖對象、組對象和內(nèi)核對象,其中內(nèi)核對象分別是線、字、形、面、塊、光、像。UI對象:figure對象的直接子對象,用于MATLAB與用戶之間的交互操作,包括面板和按鈕組、uicontrol控件、菜單、表格、右鍵菜單和工具欄。4.1句柄圖形對象4.1.2句柄圖形對象結(jié)構(gòu)在MATLAB中,由圖形命令產(chǎn)生的每一個對象都是圖形對象,一幅圖形中的圖形對象可以被單獨(dú)操作。圖形對象是相互依賴的,通常,圖形中包括很多對象,它們組合在一起,形成更有意義的圖形。系統(tǒng)將每一個對象按樹形結(jié)構(gòu)組織起來。每個具體圖形不必包含每個對象,但每個圖形必須具備根對象和圖形窗口。圖形對象按父對象和子對象組成層次結(jié)構(gòu)。

根對象:也稱為root對象,它是計算機(jī)屏幕,是所有其他對象的父對象,根對象獨(dú)一無二,主要保存一些系統(tǒng)狀態(tài)和設(shè)置信息。

圖形窗口對象:也稱為figure對象,是根的子代,窗口數(shù)目不限,所有圖形窗口都是根屏幕的子代。

坐標(biāo)軸對象:figure對象的直接子對象,用于創(chuàng)建軸對象并返回句柄,軸的子代包括繪圖對象、組對象和內(nèi)核對象,其中內(nèi)核對象分別是線、字、形、面、塊、光、像。UI對象:figure對象的直接子對象,用于MATLAB與用戶之間的交互操作,包括面板和按鈕組、uicontrol控件、菜單、表格、右鍵菜單和工具欄。內(nèi)核對象:軸對象的子對象,分別是線、字、形、面、塊、光、像。圖形對象的創(chuàng)建函數(shù)與函數(shù)描述如表4-1所示。4.1句柄圖形對象4.1.2句柄圖形對象結(jié)構(gòu)表4-1

圖形對象的創(chuàng)建函數(shù)與函數(shù)描述對象類型創(chuàng)建函數(shù)對象描述根root計算機(jī)屏幕圖形窗口figure顯示圖形和用戶界面的窗口坐標(biāo)軸axes在圖形窗口中顯示的坐標(biāo)軸內(nèi)部控件uicontrolUI對象,執(zhí)行用戶接口交互響應(yīng)函數(shù)的控件表格uimenuUI對象,在GUI中繪制表格菜單uicontextUI對象,用戶定義圖形窗口的菜單右擊菜單uicontextmenuUI對象,右鍵單擊圖形對象時調(diào)用的彈出式菜單工具欄uitoolbarUI對象,用戶定義圖形窗口的工具欄按鈕組uibuttongroupUI對象,管理單選按鈕和切換按鈕面板uipanelUI對象,用于容納坐標(biāo)軸、UI對象、按鈕組圖像image核心對象,基于像素點(diǎn)的二維圖片燈光light核心對象,影響塊對象和曲線對象的光源線條line核心對象,在指定坐標(biāo)軸內(nèi)繪制一條線塊patch核心對象,有邊界的填充多邊形矩形rectangle核心對象,有曲率屬性的、從橢圓到矩形變化的二維圖形曲面surface核心對象,將數(shù)據(jù)作為平面上點(diǎn)的高度創(chuàng)建的三維矩陣數(shù)據(jù)描述文本text核心對象,用于顯示字符串與特殊字符組合對象hggroup坐標(biāo)軸子對象,同時操作多個核心對象4.1句柄圖形對象4.1.2句柄圖形對象結(jié)構(gòu)MATLAB中各種句柄圖形對象是有層次的,上下圖形對象之間的關(guān)系為父代與子代的關(guān)系,下層的對象繼承自上層對象。一般地,子對象繼承了父對象的所有屬性,并且新添加了許多獨(dú)有屬性,平行圖形對象之間的關(guān)系為兄弟之間關(guān)系。根對象可包含一個或多個圖形窗口,每一個圖形窗口可包含一組或多組坐標(biāo)軸。創(chuàng)建對象時,當(dāng)其父對象不存在,MATLAB會自動創(chuàng)建該對象的父對象。創(chuàng)建對象時,MATLAB會返回一個用于標(biāo)識此對象的數(shù)值,稱為該對象的句柄,每個對象都有獨(dú)一無二的句柄,根對象的句柄值為0,圖形窗口的句柄值默認(rèn)為正整數(shù),其他對象的句柄值為系統(tǒng)隨機(jī)產(chǎn)生的正數(shù)。通過操作句柄,可查看對象所有屬性或修改大部分屬性。若要獲取當(dāng)前的圖形、坐標(biāo)軸和對象的句柄值,可使用下列函數(shù):gcf:獲取當(dāng)前圖形窗口的句柄值。gca:獲取當(dāng)前圖形窗口中當(dāng)前坐標(biāo)軸的句柄值。gco:獲取當(dāng)前圖形窗口中當(dāng)前對象的句柄值。gcbf:獲取正在執(zhí)行的回調(diào)函數(shù)對應(yīng)的對象所在的窗口的句柄值。gcbo:獲取正在執(zhí)行的回調(diào)函數(shù)對應(yīng)的對象句柄值。4.2句柄圖形對象的基本操作MATLAB語言的句柄繪圖可以對圖形的各個基本對象進(jìn)行更為細(xì)膩的修飾,可以產(chǎn)生更為復(fù)雜的圖形。每個圖形對象都有一個屬性列表,記錄了該圖形對象所有的信息。這個屬性列表實質(zhì)上是一個結(jié)構(gòu)體,字段名為對象的屬性名,字段值為對象的屬性值。要對對象進(jìn)行操作,就必須掌握屬性列表這個結(jié)構(gòu)體的基本操作。4.1.2句柄圖形對象結(jié)構(gòu)

句柄圖形對象都具有自己的屬性,對象屬性包括屬性名和與它們相關(guān)聯(lián)的值。屬性名是字符串,它們通常按混合格式顯示,每個詞的開頭字母大寫,比如:“LineStyle”,但是,MATLAB在識別中是不分大小寫的。在MATLAB中,為獲取和設(shè)置句柄圖形對象的屬性只需要兩個函數(shù),即可以使用get函數(shù)查詢已創(chuàng)建句柄圖形對象元素,用set函數(shù)設(shè)置已創(chuàng)建句柄圖形對象元素的屬性。1.get函數(shù)獲取對象屬性值的get函數(shù)調(diào)用格式為:get(h)%過去屬性列表a=get(句柄,'屬性名')

%a是返回的屬性值,如果在調(diào)用get函數(shù)時省略屬性名,則將返回句柄所有的屬性值。4.2句柄圖形對象的基本操作4.1.2句柄圖形對象結(jié)構(gòu)【例4-1】分別繪制正弦函數(shù)和余弦函數(shù)曲線,并利用get函數(shù)獲取正弦曲線顏色和余弦曲線的所有屬性。輸入程序命令如下:x=0:0.1:2*pi;y1=sin(x);y2=cos(x);Hs=plot(x,y1,'color','r');%繪制正弦函數(shù)holdonHc=plot(x,y2,'color','b');%繪制余弦函數(shù)axis([02*pi-11]);get(Hs,'color')%獲得正弦曲線顏色get(Hc)%獲得余弦曲線屬性運(yùn)行結(jié)果圖形窗口如圖4-1所示。圖4-1

運(yùn)行結(jié)果圖4.2句柄圖形對象的基本操作4.1.2句柄圖形對象結(jié)構(gòu)程序運(yùn)行結(jié)果為:ans=100%紅色,'r'AlignVertexCenters:offAnnotation:[1×1MATLAB.graphics.eventdata.Annotation]BeingDeleted:offBusyAction:'queue'ButtonDownFcn:''Children:[0×0GraphicsPlaceholder]Clipping:onColor:[001]ColorMode:'manual'ContextMenu:[0×0GraphicsPlaceholder]CreateFcn:''DataTipTemplate:[1×1MATLAB.graphics.datatip.DataTipTemplate]DeleteFcn:''DisplayName:''HandleVisibility:'on'HitTest:onInterruptible:onLineJoin:'round'LineStyle:'-'LineStyleMode:'auto'LineWidth:0.5000Marker:'none'MarkerEdgeColor:'auto'MarkerFaceColor:'none'MarkerIndices:[1×63uint64]MarkerMode:'auto'MarkerSize:6Parent:[1×1Axes]PickableParts:'visible'Selected:offSelectionHighlight:onSeriesIndex:8Tag:''Type:'line'UserData:[]Visible:onXData:[1×63double]XDataMode:'manual'XDataSource:''YData:[1×63double]YDataSource:''ZData:[1×0double]ZDataSource:''

其中,屬性名大小寫不做要求,并且屬性名可以簡寫,只使用前幾個字符代替,只要不與其他屬性名混淆即可。4.2句柄圖形對象的基本操作4.1.2句柄圖形對象結(jié)構(gòu)2.set函數(shù)設(shè)置圖形對象的屬性值采用set函數(shù),其調(diào)用格式為:set(句柄,屬性名1,屬性值1,屬性名2,屬性值2,...)其中,句柄用于指明要操作的圖形對象,即將該圖形對象的屬性取值設(shè)置為相應(yīng)的屬性值。例如:將線條變?yōu)辄c(diǎn)線,將圖形窗口的背景色設(shè)置為粉色,在命令窗口中輸入:set(Hs,'Color',[101]);set(Hc,'LineStyle',':');4.2句柄圖形對象的基本操作4.1.2句柄圖形對象結(jié)構(gòu)【例4-2】繪制二維曲線,利用set函數(shù)設(shè)置曲線的顏色、線型和數(shù)據(jù)點(diǎn)的標(biāo)記符號。輸入程序命令如下:h=plot(sin(1:0.1:20))set(h,'color','r','linestyle',':','marker','p')程序運(yùn)行結(jié)果如圖4-2所示。圖4-2

set函數(shù)使用示例a=set(句柄)%返回對象所有可設(shè)置屬性值,存入結(jié)構(gòu)數(shù)組a中。a的字段名為屬性名,字段值為單元數(shù)組,包含對應(yīng)屬性所有可能的值。如果沒有指定輸出參數(shù),結(jié)果輸出到命令行

說明:函數(shù)set和函數(shù)get返回不同的屬性列表。函數(shù)set只列出可以用set命令改變的屬性;函數(shù)get列出所有對象的屬性。4.2句柄圖形對象的基本操作4.1.2句柄圖形對象結(jié)構(gòu)【例4-2】查看根對象的所有可設(shè)置屬性。輸入程序命令如下:set(0)Children:{}CurrentFigure:{}FixedWidthFontName:{}HandleVisibility:{'on''callback''off'}Parent:{}PointerLocation:{}ScreenDepth:{}ScreenPixelsPerInch:{}ShowHiddenHandles:{[on][off]}Tag:{}Units:{1×6cell}UserData:{}程序運(yùn)行結(jié)果如下:

觀察上面顯示的結(jié)果,可發(fā)現(xiàn)有些屬性值為空。這分兩種情況:有的屬性只能為空值,如根對象的parent屬性;有的屬性初值為空,如根對象的Tag、UserData屬性等。

若要重新設(shè)置圖形對象的所有屬性為默認(rèn)值,可使用reset函數(shù),其調(diào)用格式為:reset(句柄)%如果為figure對象,不重設(shè)屬性Position、Units、WindowsStyle和PaperUnits;若為axes對象,不重設(shè)屬性Position和Units

例如,reset(gca)重設(shè)當(dāng)前坐標(biāo)軸的屬性值為默認(rèn)值,reset(gcf)重設(shè)當(dāng)前窗口的屬性值為默認(rèn)值。4.2句柄圖形對象的基本操作4.2.2查找對象屬性1.findobj函數(shù)

MATLAB的findobj函數(shù)用于快速遍歷對象從屬關(guān)系表并獲取具有特定屬性值的對象句柄。如果用戶沒有指定起始對象,那么findobj函數(shù)從根對象開始查找。該函數(shù)的調(diào)用格式為:h=findobj%返回根對象及其子對象句柄【例4-3】刪除所有圖窗,然后創(chuàng)建一個隨機(jī)值圖,并返回圖形根對象及其所有子對象。輸入程序命令如下:closeallplot(rand(4,3));h=findobj程序運(yùn)行結(jié)果圖如圖4-3所示。圖4-3

隨機(jī)值圖4.2句柄圖形對象的基本操作4.2.2查找對象屬性

h=6×1graphics數(shù)組:RootFigure(1)AxesLineLineLine程序運(yùn)行結(jié)果如下:

觀察結(jié)果發(fā)現(xiàn),返回了root對象、figure對象、axes對象、line對象。h=findobj('PropertyName',PropertyValue,...)%返回所有屬性名為'PropertyName',屬性值為'PropertyValue'的圖形對象句柄??梢灾付ǘ鄠€屬性/值對例如在例4-3程序后添加命令如下:h1=findobj('type','line')運(yùn)行結(jié)果如下:h1=3×1Line數(shù)組:LineLineLineh=findobj('P1',V1,'-logicaloperator','P2',V2,..)%'P'表示'PropertyName','V'表示'PropertyValue'。logicaloperator可以取值:-and、-or、-xor、-not等4.2句柄圖形對象的基本操作4.2.2查找對象屬性

h=findobj('Label','foo','-and','String','bar')

例如查找Label屬性設(shè)為'foo'和String設(shè)為'bar'的所有對象,程序命令如下:

h=findobj('-not','String','foo','-not','String','bar');h=findobj('-property','PropertyName')%如果存在'PropertyName'這個屬性名,就返回此圖形句柄

查找String不為'foo'也不為'bar'的所有對象,程序命令如下:4.2句柄圖形對象的基本操作4.2.2查找對象屬性2.findall函數(shù)

findall函數(shù)用于查找所有的對象,包括句柄隱藏的對象。其調(diào)用格式為:

h=findall(h_list)

%返回句柄對象列表h_list包含的所有對象及其子對象。若h_list為單個句柄,返回一個向量;否則返回一個單元數(shù)組例如:findall(0)返回根對象所有的子對象;findall(gcf)返回當(dāng)前窗口所有的子對象。h=findall(h_list,'PropertyName','PropertyValue',...)%返回句柄對象列表h_list包含的所有對象及其子對象中,屬性PropertyName的值為PropertyValue的對象h=findall(h_list,'P1','V1','-logicaloperator','P2','V2',..)%返回句柄對象列表h_list包含的所有對象及其子對象中,滿足給定邏輯選項的對象。logicaloperator為邏輯選項,可以取值為-and、-or、-xor、-not等,默認(rèn)值為-and4.2句柄圖形對象的基本操作4.2.2查找對象屬性【例4-4】創(chuàng)建一個圖窗,添加x軸、y軸標(biāo)簽并添加標(biāo)題,將標(biāo)題的顏色設(shè)置為紅色。使用findall函數(shù)返回所有Text對象以及返回所有紅色Text對象。輸入程序命令如下:plot(sin(1:0.1:20))xlabel('x軸')ylabel('y軸')title('y=sin(x)','Color','r')h1=findall(gcf,'Type','text')%返回當(dāng)前圖窗中的所有Text對象h2=findall(gcf,'Type','text','Color','r')%返回所有藍(lán)色Text對象程序運(yùn)行結(jié)果圖如圖4-4所示。圖4-4

創(chuàng)建圖形窗口4.2句柄圖形對象的基本操作4.2.2查找對象屬性程序運(yùn)行結(jié)果如下:h1=3×1Text數(shù)組:Text(y=sin(x))Text(x軸)Text(y軸)h2=Text(y=sin(x))-屬性:String:'y=sin(x)'FontSize:11FontWeight:'normal'FontName:'Helvetica'Color:[100]HorizontalAlignment:'center'Position:[100.00011.01071.4211e-14]Units:'data'4.2句柄圖形對象的基本操作4.2.2查找對象屬性3.allchild函數(shù)

allchild函數(shù)用于查找指定對象的所有子級,包括隱藏的子對象。其調(diào)用格式為:

h=allchild(h_list)

%若h_list為單個句柄,返回一個向量;否則,返回一個單元數(shù)組例如查找當(dāng)前坐標(biāo)軸的所有子對象,包括隱藏的子對象,可使用下列格式:allchild(gca)4.ancestor函數(shù)ancestor函數(shù)用于查找指定對象的指定類型的父類。其調(diào)用格式為:p=ancestor(h,type)若type為一個類型字符串,如'figure',則返回h的figure父類的句柄。

若type為一個由多個類型字符串組成的單元數(shù)組,如{'hgtransform','hggroup','axes'},返回h的父類中,屬性type中列出的最近的父類。若找不到指定的父類則返回空矩陣。p=ancestor(h,type,'toplevel')查找在h的父類中,屬性type中列出的,最高層的父類,返回其句柄。4.2句柄圖形對象的基本操作4.2.3復(fù)制圖形對象在MATLAB中,可通過copyobj函數(shù)可以實現(xiàn)將對象從一個父對象移動至另一個父對象中。新對象與原對象的唯一差別在于其Parent屬性值不同,并且其句柄不同,并且可向新的父對象中復(fù)制多個子對象,也可將一個子對象復(fù)制到多個父對象中。如果被復(fù)制的對象包含子對象,將同時復(fù)制所有的子對象。在復(fù)制對象時,子對象和父對象之間的類型必須匹配,比如坐標(biāo)軸中l(wèi)ine對象的副本,其新的父類必須是坐標(biāo)軸。copyobj函數(shù)的調(diào)用格式為:new_handle=copyobj(h,p)%該語句復(fù)制h指定的圖形對象至p指定的對象中,成為p的子對象h和p的取值有以下三種情況:⑴h和p可為標(biāo)量或向量。當(dāng)二者為向量時,它們的長度必須相同,且輸出參數(shù)new_handle是同一長度的向量。在此情況下,new_handle(i)是h(i)副本,其Parent屬性設(shè)置為p(i)。⑵當(dāng)h是標(biāo)量且p是向量時,h復(fù)制到p中的每個父級一次。每個new_handle(i)是其Parent屬性設(shè)置為p(i)的h的副本,并且length(new_handle)等于length(p)。⑶當(dāng)h是向量且p是標(biāo)量,則每個new_handle(i)都是其Parent屬性設(shè)置為p的h(i)的副本。new_handle的長度等于length(h)。4.2句柄圖形對象的基本操作4.2.3復(fù)制圖形對象【例4-5】將繪制的曲線復(fù)制到不同圖窗中的新坐標(biāo)區(qū)。輸入程序命令如下:x=-2*pi:0.1:2*pi;y1=sin(x+1);y2=cos(x);h=plot(x,y1,x,y2);fig=figure;%創(chuàng)建目標(biāo)圖窗ax=axes;%創(chuàng)建目標(biāo)坐標(biāo)區(qū)new_handle=copyobj(h,ax);%復(fù)制圖形對象及其后代程序運(yùn)行結(jié)果如圖4-5所示。圖4-5

copyobj函數(shù)使用示例4.2句柄圖形對象的基本操作4.2.4刪除圖形對象1.delete函數(shù)

在MATLAB中,delete函數(shù)可用于刪除文件或圖形對象。其調(diào)用格式為:

deletefilename或delete('filename')

%用于刪除文件

delete(h)

%用于刪除圖形對象h例如繪制一條曲線,然后刪除該條曲線,輸入程序命令如下:x=-2*pi:0.1:2*pi;y=sin(x+1);h=plot(x,y);刪除該條曲線程序命令:delete(h)觀察結(jié)果發(fā)現(xiàn),圖形窗口中的曲線已被刪除。變量p仍然保留在工作區(qū),但是不再引用對象。輸入程序:display(h)運(yùn)行結(jié)果為:h=handletodeletedLine4.2句柄圖形對象的基本操作4.2.4刪除圖形對象2.clf函數(shù)

在MATLAB中,clf函數(shù)用于清空當(dāng)前fugure窗口,其調(diào)用格式如下:clf

%刪除當(dāng)前圖窗中具有可見句柄的所有子級clf(fig)

%刪除指定圖窗fig中具有可見句柄的所有子級clf('reset')或clfreset

%刪除當(dāng)前圖窗的所有子級,不管其句柄是否可見。并將除Position、Units、PaperPosition和PaperUnits屬性外,其他的圖窗屬性重置為默認(rèn)值clf(fig,'reset')

%刪除指定圖窗fig的所有子級并重置其屬性4.2句柄圖形對象的基本操作4.2.4刪除圖形對象

【例4-6】創(chuàng)建線圖并設(shè)置當(dāng)前圖窗的背景顏色。對比clf函數(shù)兩種清空當(dāng)前圖窗的調(diào)用格式。plot(sin(0:0.1:5*pi))f=gcf;f.Color=[011];

%設(shè)置當(dāng)前圖窗背景顏色繪制線圖程序命令如下:第一種調(diào)用格式程序命令如下:clf通過觀察結(jié)果圖,clf函數(shù)調(diào)用會刪除該曲線。但是,不會影響圖窗的背景顏色。

第二種調(diào)用格式程序命令如下:f=clf('reset')

通過觀察結(jié)果圖,clf('reset')將背景顏色重置為其默認(rèn)值。

說明:clf無論是在命令窗口中使用還是在回調(diào)函數(shù)中使用,其功能是相同的,它并不受窗口對象的HandleVisibility屬性限制,也就是說,當(dāng)HandleVisibility屬性值為off,照樣刪除窗口中的所有對象,并重設(shè)窗口屬性。4.2句柄圖形對象的基本操作4.2.4刪除圖形對象3.cla函數(shù)

在MATLAB中,cla函數(shù)用于清空當(dāng)前坐標(biāo)軸。其調(diào)用格式為:cla

%刪除當(dāng)前坐標(biāo)軸中句柄不隱藏的對象(HandleVisibility值為on)clareset

%刪除當(dāng)前坐標(biāo)軸中所有的對象(不論句柄是否隱藏)。并除了Position、Units屬性外,重設(shè)axes屬性為默認(rèn)值4.2句柄圖形對象的基本操作4.2.4刪除圖形對象

【例4-7】繪制正弦波。利用cla函數(shù)分別清除當(dāng)前坐標(biāo)區(qū)、清除坐標(biāo)區(qū)并重置所有坐標(biāo)區(qū)屬性。輸入繪圖程序命令如下:x=linspace(0,2*pi);y1=sin(x);plot(x,y1)清除當(dāng)前坐標(biāo)區(qū)。輸入命令如下:cla%清除當(dāng)前坐標(biāo)區(qū)運(yùn)行結(jié)果如圖4-6所示。清除坐標(biāo)區(qū)并重置所有坐標(biāo)區(qū)屬性。輸入命令如下:clareset%清除坐標(biāo)區(qū)并重置所有坐標(biāo)區(qū)屬性運(yùn)行結(jié)果如圖4-7所示。圖4-6

清除當(dāng)前坐標(biāo)區(qū)圖圖4-7

清除坐標(biāo)區(qū)并重置坐標(biāo)區(qū)屬性圖4.2句柄圖形對象的基本操作4.2.4刪除圖形對象4.close函數(shù)

在MATLAB中,cla函數(shù)用于清空當(dāng)前坐標(biāo)軸。其調(diào)用格式為:close%關(guān)閉當(dāng)前圖窗。調(diào)用close等效于調(diào)用close(gcf)close(fig)%關(guān)閉句柄為fig的圖窗closeall%關(guān)閉句柄可見的所有圖窗closeallhidden

%關(guān)閉所有圖窗,包括具有隱藏句柄的圖窗ststus=close(..)

%關(guān)閉指定窗口,若關(guān)閉成功,返回1;否則返回0例如,創(chuàng)建多個圖窗。程序命令如下:f1=figure;f2=figure;f3=figure;plot(1:10)接著,關(guān)閉指定圖窗f1。程序命令如下:close(f1)或者,關(guān)閉多個窗口f1和f2。程序命令如下:close([f1f2])其中,可用ststus=close(..)調(diào)用格式,驗證圖窗是否關(guān)閉。例如,輸入程序命令如下:status=close(f1)如果關(guān)閉成功返回1,否則返回0。4.2句柄圖形對象的基本操作4.2.4刪除圖形對象5.closereq函數(shù)

在MATLAB中closereq函數(shù)是默認(rèn)的窗口關(guān)閉請求函數(shù),無輸入和輸出參數(shù),相當(dāng)于語句delete(gcf)。4.3圖形對象的基本屬性

在MATLAB中給每種對象的每個屬性都規(guī)定了名字,稱為屬性名,而屬性名的取值稱為屬性值,圖形對象的屬性控制圖形的外觀和顯示特點(diǎn)。1.圖形對象的共有屬性所有圖形對象共有的屬性如表4-2所示,其中用{}括起來的值為默認(rèn)值。表4-2

圖形對象的共有屬性屬性屬性描述有效屬性值BeingDeleted當(dāng)對象的DeleteFcn函數(shù)調(diào)用后,該屬性的值為on;只讀on、{off}BusyAction指定響應(yīng)函數(shù)點(diǎn)中斷的方式cancel、{queue}ButtonDownFcn當(dāng)單擊按鈕時,執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄Children該對象所有子對象的句柄圖形對象的句柄向量Clipping指定坐標(biāo)軸子對象是否能超出坐標(biāo)軸范圍(只對坐標(biāo)軸子對象有效);值為on時可超出坐標(biāo)軸范圍{on}、off(text對象例外,默認(rèn)值為off)CreateFcn當(dāng)對應(yīng)類型的對象創(chuàng)建時執(zhí)行字符串或函數(shù)句柄DeleteFcn當(dāng)刪除對象時執(zhí)行該函數(shù)字符串或函數(shù)句柄HandleVisibility用于控制句柄是否可以通過命令行或者響應(yīng)函數(shù)訪問{on}、off、callback4.3圖形對象的基本屬性續(xù)表4-2

圖形對象的共有屬性屬性屬性描述有效屬性值HitTest指定對象是否可通過單擊成為當(dāng)前對象{on}、offInterruptible指定當(dāng)前的響應(yīng)函數(shù)是否可以被隨后的響應(yīng)函數(shù)訪問{on}、offParent該對象所有父對象圖形對象的句柄Selected指定對象是否被選擇上{on}、offSelectionHighlight指定是否現(xiàn)實對象的選中狀態(tài){on}、offTag用戶指定的對象標(biāo)識符字符串Type指明對象類型,只讀類型字符串UserData用戶存儲的數(shù)據(jù)任一矩陣Visible設(shè)置該對象是否可見{on}、off1)Parent、Children屬性Children屬性的取值是該對象所有子對象的句柄組成的一個向量。例如:get(gca,'children')

%獲取當(dāng)前坐標(biāo)軸對象的子對象

說明:Children屬性只列出句柄可見的子對象。要獲取所有子對象的句柄,可以先設(shè)置根對象的ShowHiddenHandles屬性值為on。Parent屬性的取值是該對象的父對象的句柄。例如:get(gcf,'parent')

%得到圖形窗口的父對象4.3圖形對象的基本屬性【例4-8】利用Children屬性,完成以下要求:繪制兩條不同顏色的曲線,并改變當(dāng)前軸上一條曲線的顏色。輸入程序命令如下:x=0:0.1:2*pi;y1=sin(x);y2=sin(x+1);plot(x,y1,'r',x,y2,'g');H=get(gca,'Children');%獲取兩條曲線句柄向量Hfork=1:size(H)

ifget(H(k),'Color')==[010]%得到綠色曲線的句柄

H1=H(k);%將綠色曲線的句柄賦值給H1

endendpause;set(H1,'Color','b');%將H1句柄的曲線顏色設(shè)置為藍(lán)色程序運(yùn)行結(jié)果如圖4-8所示。(a)修改前(b)修改前圖4-8

Children屬性2)Tag屬性Tag屬性的取值是一個字符串,它相當(dāng)于給該對象定義了一個標(biāo)識符,該標(biāo)識符可在控件的屬性項中設(shè)置,也可直接用set函數(shù)設(shè)置。標(biāo)識符名Tag必須以字母開頭,可包括字母、數(shù)字或下畫線,并且標(biāo)識符名盡量與對象的類型或功能相關(guān),例如,開始按鈕可設(shè)置Tag為start。同一個窗口中不同對象的Tag不可相同。定義了Tag屬性后,在任何程序中都可以通過findobj函數(shù)獲取該標(biāo)識符所對應(yīng)圖形的句柄。例如:h=plot(sin(0:0.1:5*pi))set(h,'tag','sin')hf=findobj(0,'tag','sin')3)Type屬性Type屬性表明該對象的類型。對象一旦被創(chuàng)建,類型就確定了,所以Type值只讀,也就是說該屬性的取值不可改變。如根對象的Type值為root,窗口對象的Type值為figure,坐標(biāo)軸的Type為axes等。例如:h=plot(sin(0:0.1:5*pi));get(h,'type')ans='line'4.3圖形對象的基本屬性4)Visible屬性Visible屬性用于指定對象的可見性。該屬性的默認(rèn)取值是on,當(dāng)它的值為off時,可以用來隱藏該圖形窗口的動態(tài)變化過程,如窗口大小的變化、顏色的變化等。例如:set(0,'userdata',[100;010;001]);get(0,'userdata')程序運(yùn)行結(jié)果如下:圖4-9

隱藏坐標(biāo)軸邊框4.3圖形對象的基本屬性5)UserData屬性UserData屬性的取值是一個矩陣,默認(rèn)值為空矩陣。在程序設(shè)計中,可以將與圖形對象有關(guān)的比較重要的用戶數(shù)據(jù)存儲在這個屬性中,便于數(shù)據(jù)在多個對象之間的傳遞。例如:h=plot(sin(0:0.1:5*pi));boxoff%去除上右邊框刻度set(gca,'Visible','off');%移除坐標(biāo)軸邊框set(gcf,'color','w');%設(shè)置背景為白色程序運(yùn)行結(jié)果如下:ans=1000100016)BusyAction、Interruptible屬性BusyAction屬性決定當(dāng)一個回調(diào)函數(shù)正在執(zhí)行時,隨后產(chǎn)生的回調(diào)函數(shù)是排隊執(zhí)行還是不執(zhí)行;Interruptible屬性決定對象的回調(diào)函數(shù)能否被隨后產(chǎn)生的回調(diào)函數(shù)中斷。4.3圖形對象的基本屬性7)CreatFcn、ButtonDownFcn、DeleteFcn屬性執(zhí)行對象時,執(zhí)行CreatFcn;刪除對象時,執(zhí)行DeleteFcn。單擊對象時,執(zhí)行ButtonDownFcn,該屬性的取值是一個字符串,一般是某個M文件名或一小段MATLAB程序,當(dāng)鼠標(biāo)指針位于對象之上,用戶單擊時執(zhí)行字符串。例如:x=-2:.5:2;y=x;[XY]=meshgrid(x,y);Z=--4*X.^2-Y.^2;mesh(X,Y,Z);set(gcf,'buttondown','peaks');%當(dāng)執(zhí)行單擊操作,執(zhí)行程序peaks4.3圖形對象的基本屬性程序運(yùn)行結(jié)果如圖4-10(a)所示,執(zhí)行單擊操作的結(jié)果如圖4-10(b)所示。(a)單擊前圖窗(b)單擊后圖窗圖4-10ButtonDownFcn屬性4.3圖形對象的基本屬性8)HandleVisibility屬性HandleVisibility屬性指定對象句柄是否可見,其值可以為:on:對于任何在MATLAB命令行或M文件中執(zhí)行的函數(shù)都是可見的,對所有其他對象可見,可用findobj函數(shù)查找;Callback:對象的句柄僅在回調(diào)函數(shù)的工作區(qū)中可見。該設(shè)置使回調(diào)函數(shù)可以利用MATLAB句柄獲取函數(shù),并確保用戶在執(zhí)行非MATLABAppDesigner回調(diào)函數(shù)時不會無意中干擾受保護(hù)的對象;Off:句柄對所有在命令行窗口和回調(diào)函數(shù)中執(zhí)行的函數(shù)都隱藏。一般對其他對象不可見,但可用findall函數(shù)查找。若根對象的ShowHiddenHandles屬性值為off,且圖形對象h的HandleVisibility屬性值為off,則不能通過在非MATLABAppDesigner回調(diào)函數(shù)(例如定時器的回調(diào)函數(shù)、串口的回調(diào)函數(shù)以及其他硬件設(shè)備的回調(diào)函數(shù))內(nèi)調(diào)用findobj、newplot、cla、clf、gcf、gca、gco、gcbf、gcbo、axes(hAxes)或close等命令獲取對象h。9)Selected、SelectionHighlightSelected指定對象是否被選擇上;SelectionHighlight指定對象被選擇上時是否突出顯示。圖形窗口被選擇時自動置頂,不需要突出顯示。10)HitTestHitTest指定對象是否可通過單擊成為當(dāng)前對象。設(shè)置此值時會更新gcf或gco的值。4.3圖形對象的基本屬性2.圖形對象的默認(rèn)屬性MATLAB會為每個新創(chuàng)建的對象指定默認(rèn)的出廠屬性值,例如:get(0,'factory')ans=factoryAnimatedlineAlignVertexCenters:offfactoryAnimatedlineBusyAction:'queue'factoryAnimatedlineButtonDownFcn:''factoryAnimatedlineClipping:onfactoryAnimatedlineColor:[000]factoryAnimatedlineCreateFcn:''factoryAnimatedlineDeleteFcn:''factoryAnimatedlineDisplayName:''factoryAnimatedlineHandleVisibility:'on'......

factoryUitoolbarBusyAction:'queue'factoryUitoolbarButtonDownFcn:''factoryUitoolbarClipping:onfactoryUitoolbarCreateFcn:''factoryUitoolbarDeleteFcn:''factoryUitoolbarHandleVisibility:'on'factoryUitoolbarInterruptible:onfactoryUitoolbarTag:''factoryUitoolbarUserData:[]factoryUitoolbarVisible:on4.3圖形對象的基本屬性

在MATLAB中,除了可以查詢系統(tǒng)的默認(rèn)屬性值外,還可根據(jù)需要自定義各種圖形對象的屬性默認(rèn)值。由于MATLAB對默認(rèn)值的搜索是從當(dāng)前對象開始,沿著對象的從屬關(guān)系圖向更高的層次搜索,直到發(fā)現(xiàn)系統(tǒng)的默認(rèn)值或用戶自己定義的值。所以在定義對象的默認(rèn)值時,在對象從屬關(guān)系圖中,該對象越靠近Root(根)對象,其作用的范圍越廣。

若用戶在對象從屬關(guān)系圖的不同層次上定義同一個屬性的默認(rèn)值,MATLAB將會自動選擇最小層的屬性值作為最終的屬性值。并且用戶自定義的屬性值只能影響到該屬性設(shè)置后創(chuàng)建的對象,之前的對象都不會受到影響。

在MATLAB中要定義默認(rèn)值,需要創(chuàng)建一個以Default開頭的字符串,后面依次跟對象類型和對象屬性,即屬性名='Default'+對象類型+對象屬性。例如:DefaultLineLineWidth:線的寬度DefaultLineColor:線的顏色DefaultFigureColor:圖形窗口的顏色DefaultAxesAspaceRatio:軸的視圖比率4.3圖形對象的基本屬性

具體默認(rèn)值的獲得與設(shè)置也是通過set和get函數(shù)實現(xiàn)的。例如:將uicontrol對象的FontSize屬性的默認(rèn)值設(shè)置為10:set(0,'DefaultUicontrolFontSize',10)獲取圖形窗口顏色的默認(rèn)值:get(0,'DefaultFigureColor')說明:這些設(shè)置在MATLAB軟件關(guān)閉后將自動清除。4.3圖形對象的基本屬性【例4-9】繪制曲線并設(shè)置線的默認(rèn)寬度為3磅、線的默認(rèn)顏色為藍(lán)色。輸入程序命令如下:alpha=0:0.01:2*pi;%定義alpha的范圍和刻度x=sin(alpha);y=cos(alpha);set(0,'DefaultLineLineWidth',3);plot(x,y)axis([-1.51.5-1.51.5])%定義坐標(biāo)軸范圍gridon%添加網(wǎng)格線程序運(yùn)行結(jié)果如圖4-10所示。圖4-11

設(shè)置默認(rèn)線寬

在MATLAB中提供了3個保留字用于刪除('remove')、設(shè)置('factory')或恢復(fù)('default')對象的默認(rèn)屬性值。保留字'remove'、'factory'、'default'全部為小寫字母,否則就不是保留字,而是普通的字符串。如果要得到字符串'remove'、'factory'、'default',需要在字符串之前加一個“\”。4.3圖形對象的基本屬性

1)remove

若要刪除用戶定義的默認(rèn)屬性值,可將屬性值設(shè)為'remove',例如,刪除當(dāng)前窗口中Line對象的Color屬性的默認(rèn)值:set(gcf,'DefaultLineColor','remove')2)factory

若要臨時將對象的默認(rèn)屬性設(shè)置為出廠屬性值,可將其屬性設(shè)為'factory'。例如,將圖形窗口顏色設(shè)置為出廠屬性值:figure('color','factory')3)defaule

若要恢復(fù)對象的默認(rèn)屬性值,可將其屬性設(shè)置為'default',例如:set(gca,'FontName','default')4.3圖形對象的基本屬性4.4圖形對象

在MATLAB中句柄對象有著共同的屬性和特有的屬性,只有充分了解各屬性的含義,才能在編程中靈活地使用它。下面分別介紹主要對象的相關(guān)屬性。4.4.1根對象

圖形對象的根對象相當(dāng)于計算機(jī)屏幕,是figure對象的父類。根對象獨(dú)一無二,只能創(chuàng)建唯一的一個Root對象,句柄值為0,父類為空。

根對象主要用于存儲關(guān)于MATLAB狀態(tài)、計算機(jī)系統(tǒng)和MATLAB默認(rèn)值的信息,根對象不需要用戶創(chuàng)建,當(dāng)啟動MATLAB進(jìn)程時,根對象隨之產(chǎn)生,并且不能手動銷毀,當(dāng)退出MATLAB時它就自動銷毀了。查看根對象的屬性可使用語句:get(0)4.4圖形對象4.4.1根對象

根對象的常用屬性如表4-3所示,表中按照首字母順序排序,屬性值欄中用{}括起來的值為默認(rèn)值。表4-3

根對象的常用屬性屬性屬性描述屬性值CallbackObject當(dāng)前正在執(zhí)行的回調(diào)函數(shù)的對象的句柄圖形對象的句柄Children根對象的所有子對象的句柄句柄向量CurrentFigure當(dāng)前圖形的句柄圖形對象的句柄Diary會話記錄。值為on時,備份輸入和輸出記錄on、{off}DiaryFile包含diary文件名的字符串,默認(rèn)文件名是diary字符串Echo腳本響應(yīng)模式。值為on時,顯示腳本文件on、{off}FixedWidthFontName圖形窗口下繼承對象的字體名稱定寬字體名Format數(shù)字顯示的格式{short}:5位的定點(diǎn)格式shortE:5位的浮點(diǎn)格式long:15位換算過的定點(diǎn)格式longE:15位的浮點(diǎn)格式hex:16進(jìn)制格式bank:美元和分的定點(diǎn)格式+:顯示+和-符號rat:用整數(shù)比率逼近MonitorPositions顯示器的寬和高;主顯示器格式為[11寬高]1×4矩陣Parent父對象根對象的父類恒為空矩陣屬性屬性描述屬性值PointerLocation相對于屏幕左下角指針當(dāng)前位置位置向量,單位由Units屬性指定PointerWindow鼠標(biāo)指針?biāo)诖翱诘木浔翱诰浔荒J(rèn)值為0ScreenDepth屏幕的顯示深度;每像素的位數(shù)正整數(shù);默認(rèn)值為32ScreenSize屏幕的顯示尺寸;只讀位置向量[left,bottom,width,height]ShowHiddenHandles顯示或隱藏標(biāo)記為隱藏的句柄on、{off}Tag用戶定義的對象標(biāo)識符字符串Type根對象的類型root;只讀Units計量單位{pixels}:屏幕像素,計算機(jī)屏幕分辨率的最小單位normalized:歸一化坐標(biāo)inches:英寸points:磅characters:字符centimeters:厘米UserData用戶定義的數(shù)據(jù)任一數(shù)據(jù)類型4.4圖形對象4.4.1根對象

根對象是隨著MATLAB啟動自動產(chǎn)生的,因此用戶不能對根對象實例化,但是用戶可以通過get函數(shù)和set函數(shù)查詢和設(shè)置根對象的某些屬性。例如,打開MATLAB命令窗口的回顯模式,使得運(yùn)行MATLAB腳本時,命令窗口會顯示每一條命令機(jī)器輸出結(jié)果。程序命令如下:set(0,'Echo','on')

再例如,請采用左下角和右上角的坐標(biāo)表示屏幕的顯示大小,并且將Units設(shè)置為normalized。程序命令如下:set(0,'Units','norm')

%設(shè)置計量單位為歸一化get(0,'ScreenSize')

%獲取屏幕歸一化大小ans=00114.4圖形對象4.4.2圖形窗口對象

圖形窗口對象也稱為Figure對象,是根對象的直接子對象,所有其他句柄圖形對象都直接或間接繼承圖形對象窗口對象。Figure對象主要用于MATLAB顯示圖形的窗口,窗口內(nèi)可包括:坐標(biāo)軸、坐標(biāo)軸子對象、菜單、右鍵菜單、ActionX控件等。

MATLAB中可以通過figure函數(shù)實例化創(chuàng)建任意多個圖形窗口對象。figure函數(shù)的常用調(diào)用格式為:figure

不帶參數(shù)的figure函數(shù),可以創(chuàng)建一個新的圖形窗口對象,并將它設(shè)置為當(dāng)前窗口,MATLAB一般返回一個整數(shù)(1、2、3等)數(shù)值作為該圖形窗口的句柄。figure('PropertyName',PropertyValue,...)采用指定的屬性值,創(chuàng)建一個圖形窗口對象,任何未指定的屬性均取默認(rèn)值。figure(h)4.4圖形對象4.4.2圖形窗口對象

創(chuàng)建句柄為h的圖形窗口。若h是一個圖形窗口對象句柄時,MATLAB設(shè)置該圖形窗口為當(dāng)前圖形窗口;若h不是一個圖形窗口對象的句柄,但它是一個正整數(shù)時,MATLAB創(chuàng)建一個句柄為h的圖形窗口,并設(shè)為當(dāng)前窗口;若h不是一個圖形窗口對象的句柄,也不是一個正整數(shù)時,MATLAB返回一個錯誤。h=figure(...)

創(chuàng)建圖形窗口的同時返回該圖形窗口句柄。

要關(guān)閉圖形窗口,使用close函數(shù),其調(diào)用格式為:close(窗口句柄)

另外,closeall命令可以關(guān)閉所有的圖形窗口。clf命令則是清除當(dāng)前窗口的內(nèi)容,但不關(guān)閉窗口。圖形窗口對象的主要屬性如表4-4所示,表排序按屬性名的首字母順序排序,屬性值欄中用{}括起來的值為默認(rèn)值。4.4圖形對象4.4.2圖形窗口對象表4-4

圖形窗口對象的主要屬性表屬性名屬性描述屬性值A(chǔ)lphamap阿爾法色圖;用于設(shè)定透明度m×1維向量,每個分量在[01]之間BeingDeleted調(diào)用DeleteFcn時,該屬性的值為on;只讀on、{off}BusyAction指定如何處理中斷調(diào)用函數(shù)cancel、{queue}ButtonDownFcn當(dāng)單擊按鈕時,執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄Children可見的子對象的句柄句柄向量CloseRequestFcn關(guān)閉Figure時執(zhí)行的回調(diào)函數(shù)函數(shù)句柄字符串,默認(rèn)為'closereq'Color圖形窗口背景色顏色默認(rèn)為[0.80.80.8]Colormap色圖m×3的RGB顏色矩陣CreateFcn當(dāng)創(chuàng)建一個figure對象時,執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄CurrentAxes圖形當(dāng)前坐標(biāo)軸句柄坐標(biāo)軸句柄CurrentCharacter當(dāng)鼠標(biāo)指針在圖形窗口中,鍵盤上最新按下的字符鍵單個字符CurrentObject當(dāng)前對象的句柄圖形對象的句柄CurrentPoint鼠標(biāo)指針最后按下或釋放時所在的位置位置向量[left,bottom]或圖形窗口的點(diǎn)的[X,Y],單位取決于Units屬性DeleteFcn當(dāng)銷毀一個figure對象時,執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄DockControls圖形嵌入控制{on}、off屬性名屬性描述屬性值FileNameGUI使用的.fig文件名字符串HandleVisibility指定當(dāng)前figure對象的句柄是否可見{on}、callback、offIntegerHandle圖形對象句柄是否采用整數(shù){on}、offInterruptible回調(diào)函數(shù)是否可中斷{on}、offInvertHardcopy改變圖形元素顏色為白底黑圖以打印{on}、offKeyPressFcn在窗口上按下一個鍵時執(zhí)行的回調(diào)函數(shù)函數(shù)句柄、由函數(shù)句柄和附加參數(shù)組成的單調(diào)數(shù)組、可執(zhí)行字符串KeyReleaseFcn在窗口內(nèi)釋放一個按鍵時執(zhí)行的回調(diào)函數(shù)函數(shù)句柄、由函數(shù)句柄和附加參數(shù)組成的單調(diào)數(shù)組、可執(zhí)行字符串MenuBar將MATLAB菜單在圖形窗口的頂部或某些系統(tǒng)中的屏幕頂部顯示;使用菜單欄時值為figure{figure}、noneName圖形窗口的標(biāo)題字符串NextPlot決定新圖作圖方式new、{add}、replaceNumberTitle圖形標(biāo)題中是否顯示圖形編號{on}、offOuterPosition窗口整個外輪廓的大小和位置四維行向量,格式為[左,底,寬,高];單位取決于Units屬性PaperOrientation打印時的紙張方向{portrait}:肖像方向、landscape:景象方向PaperPosition打印頁面上圖形位置的向量[left,bottom]、[width,height]4.4圖形對象4.4.2圖形窗口對象續(xù)表4-4

圖形窗口對象的主要屬性表屬性名屬性描述屬性值PaperSize用于打印的紙張尺寸[width,height],單位由PaperUnits屬性指定,默認(rèn)的紙張大小為[8.511]PaperType打印圖形紙張的類型{usletter}、uslegall、a3、a4letter、a5、b4、tabloidPaperUnits紙張屬性的度量單位{inches}、centimeters、normalized、pointsParent圖形父對象的句柄,figure對象的父對象為根對象恒為0;只讀Pointer選擇鼠標(biāo)指針形狀crosshair、{arrow}、topl、topr、botl、watch、botr、circle、cross、fleur、left、right、top、bottom、fullcrosshair、ibeam、customPointerShapeCData自定義指針;pointer屬性值為custom時有效16×16的矩陣PointerShapeHotSpot指針激活區(qū)域二維向量,格式為[行數(shù),列數(shù)];默認(rèn)值格式為[1,1]Position圖形窗口的位置與大小四維位置向量,格式為[左,底,寬,高]Renderer圖形窗口著色器{painters}、zbuffer、OpenGL、NoneRendererMode著色模式是自動還是手選{auto}、manualResize是否允許交互圖形重新定尺寸on、{off}SelectionType最近一次鼠標(biāo)操作的方式{normal}、extend、alt、open屬性名屬性描述屬性值Tag對象標(biāo)識符字符串ToolBar指定工具欄是否顯示none、{auto}、figureType圖形窗口對象的類型figureUnits計量單位inches、centimeters、normalized、points、{pixels}、charactersUserData用戶定義的數(shù)據(jù)任一矩陣Visible設(shè)定圖形對象是否可見{on}、offWindowButtonDownFcn在圖形窗口中按下鼠標(biāo)時執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄WindowButtonMotionFcn當(dāng)鼠標(biāo)在圖形窗口中移動時執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄WindowButtonUpFcn當(dāng)在圖形窗口中松開鼠標(biāo)時執(zhí)行的回調(diào)函數(shù)字符串或函數(shù)句柄WindowKeyPressFcn當(dāng)在窗口及其子對象上按下任意鍵時,執(zhí)行的回調(diào)函數(shù)函數(shù)句柄、由函數(shù)句柄和附加參數(shù)組成的單位數(shù)組、可執(zhí)行字符串WindowKeyReleaseFcn當(dāng)在窗口及其子對象上釋放任意按鍵時,執(zhí)行的回調(diào)函數(shù)函數(shù)句柄、由函數(shù)句柄和附加參數(shù)組成的單位數(shù)組、可執(zhí)行字符串WindowScrollWheelFcn當(dāng)窗口為當(dāng)前對象并滾動鼠標(biāo)滾輪時,執(zhí)行的回調(diào)函數(shù)函數(shù)句柄、由函數(shù)句柄和附加參數(shù)組成的單位數(shù)組、可執(zhí)行字符串WindowStyle窗口為標(biāo)準(zhǔn)窗口、模式窗口或嵌入式窗口{normal}、modal、docked4.4圖形對象4.4.2圖形窗口對象1)name屬性name屬性的取值可以是任意字符串,它的默認(rèn)值為空。例如:clc;clear;closeall;figure;pauseset(gcf,'name','Myname');%設(shè)置name屬性值

運(yùn)行結(jié)果如圖4-11所示。圖4-12

Name屬性設(shè)置4.4圖形對象4.4.2圖形窗口對象

2)MenuBar、Toolbar屬性

MenuBar屬性的取值可以是figure(默認(rèn)值)或none,用來控制圖形窗口是否應(yīng)該具有菜單條;MenuBar值為figure時,顯示MATLAB內(nèi)置菜單;MenuBar值為none時,隱藏標(biāo)準(zhǔn)菜單欄。由uimenu命令產(chǎn)生的用戶自定義菜單不受該屬性影響。例如:clc;clear;closeall;figure;pauseset(gcf,'menubar','none');pauseset(gcf,'menubar','figure');

運(yùn)行結(jié)果如圖4-12和圖4-13所示。圖4-12MenuBar屬性有菜單條

圖4-13

MenuBar屬性無菜單條4.4圖形對象4.4.2圖形窗口對象

Toolbar屬性控制窗口標(biāo)準(zhǔn)工具欄的顯示。Toolbar屬性取值為none時,不顯示窗口工具欄;取值為auto時,顯示窗口工具欄,但如果一個UI控件添加到窗口中,將隱藏該工具欄;取值為figure時,顯示窗口工具欄。

說明:當(dāng)MenuBar值為none、Toolbar值為figure時,隱藏標(biāo)準(zhǔn)菜單欄,顯示標(biāo)準(zhǔn)工具欄;當(dāng)MenuBar值為none、Toolbar值為auto或none時,同時隱藏標(biāo)準(zhǔn)菜單欄和標(biāo)準(zhǔn)工具欄。例如:

圖4-14

隱藏標(biāo)準(zhǔn)菜單欄并顯示標(biāo)準(zhǔn)工具欄clc;clear;closeall;figure;pauseset(gcf,'menubar','none','toolbar','figure');

運(yùn)行結(jié)果如圖4-14所示。4.4圖形對象4.4.2圖形窗口對象3)Color屬性Color屬性設(shè)定圖形窗口的背景顏色,其值可以為一個表示RGB值的三維矩陣,也可以為一個MATLAB預(yù)定義的顏色字符或字符串,預(yù)定義顏色如表4-5所示。表4-5

預(yù)定義顏色RGB值顏色字符串簡寫字符RGB值顏色字符串簡寫字符[110]yellowy[010]greeng[101]megentam[001]blueb[011]cyanc[111]whitew[100]redr[000]blackk4.4圖形對象4.4.2圖形窗口對象例如:clc;clear;closeall;figure;pauseset(gcf,'color','w');pauseset(gcf,'color',[000]);運(yùn)行結(jié)果如圖4-16所示和如圖4-17所示。圖4-16

白色背景

圖4-17

黑色背景

4.4圖形對象4.4.2圖形窗口對象color屬性如果與顏色選擇對話框結(jié)合起來,可自定義對象的color屬性。例如:figure(1);uisetcolor(1,'請選擇窗口背景顏色')運(yùn)行后選擇背景顏色對話框如圖4-18所示,選擇藍(lán)色后結(jié)果如圖4-19所示。圖4-18

選擇背景顏色對話框

圖4-19

選擇后顯示效果4.4圖形對象4.4.2圖形窗口對象4)CurrentCharacter屬性CurrentCharacter屬性獲取用戶最后輸入的字符。如果要查看獲取的控制字符,可使用double函數(shù)將當(dāng)前字符轉(zhuǎn)換為ASCII值?!纠?-11】創(chuàng)建一個窗口,鼠標(biāo)選中新建的窗口,按下大寫字母A鍵,獲取用戶輸入最后的最后字符。輸入程序命令如下:clc;clear;closeall;figure;pausea=get(gcf,'currentcharact

溫馨提示

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

評論

0/150

提交評論