




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章matlab繪圖及GUI設計6/4/20231內容※4.1二維曲線的繪制4.2MATLAB的三維圖形繪制※4.3MATLAB的特殊圖形繪制4.4圖形窗口的功能4.5對話框※4.6句柄圖形※4.7用戶圖形界面設計6/4/202324.1二維曲線的繪制4.1.1基本繪圖命令plot命令是MATLAB中最簡單而且使用最廣泛的一個繪圖命令,用來繪制二維曲線。語法:plot(x)%繪制以x為縱坐標的二維曲線plot(x,y)%繪制以x為橫坐標y為縱坐標的二維曲線說明:x和y可以是向量或矩陣。6/4/202331.plot(x)繪制x向量曲線當x是長度為n的數(shù)值向量時縱坐標:向量x橫坐標1:n(系統(tǒng)自動生成)。plot(x)命令順序地用直線段連接各點,生成一條折線,當向量的元素充分多時,可以得到一條光滑的曲線。6/4/20234例4.1用plot(x)命令畫直線x1=[123]plot(x1)x2=[010]plot(x2)(b)x2曲線圖4.1(a)x1曲線6/4/202352.plot(x,y)繪制向量x和y的曲線當參數(shù)x和y都是長度為n的向量,x、y的長度必須相等,plot(x,y)命令繪制縱坐標為向量y橫坐標為向量x的曲線。例4.2繪制正弦曲線y=sin(x)和方波曲線,如圖4.2所示。x1=0:0.1:2*pi;y1=sin(x1); plot(x1,y1)x2=[011223];y2=[110011];plot(x2,y2)axis([0402])
圖4.2(a)正弦曲線(b)方波曲線6/4/202363.plot(x)繪制矩陣x的曲線當x是一個m×n的矩陣,plot(x)命令為矩陣的每一列畫出一條線,共n條曲線,各曲線自動用不同顏色顯示;每條線的橫坐標為向量1:m。例4.3矩陣圖形的繪制,如圖4.3所示。x1=[123;456];plot(x1)x2=peaks;%產生一個49*49的矩陣plot(x2)圖4.3(a)x1曲線(b)x2曲線6/4/202374.plot(x,y)繪制混合式曲線當plot(x,y)中x和y是向量或矩陣時,有幾種情況:若x是向量,y是矩陣,x的長度=y的行或列數(shù)?!鵻長度=y行數(shù),則向量x與矩陣y的每列向量對應畫一條曲線;※x的長度=y的列數(shù)相等,向量x與y的每行向量畫一條曲線,若y是方陣,則向量x與矩陣y的每列向量畫一條曲線;若x是矩陣,y是向量,則y的長度=x的行數(shù)或列數(shù),繪制的方法與前一種相似;若x和y都是矩陣,則大小必須相同,矩陣x的每列和y的每列畫一條曲線。6/4/20238例4.4混合式圖形的繪制x1=[123];y1=[123;456]plot(x1,y1)
%長度與列相等y2=[12;34;56]plot(x1,y2)
%長度與行相等plot(y1,x1)plot(y2,x1)x2=[111;222]plot(x2,y1)%長度與行列相等6/4/202395.plot(z)繪制復向量曲線plot(z)中的參數(shù)z為復向量時,plot(z)和plot(real(z),imag(z))是等效的,以實部為橫坐標,虛部為縱坐標。例4.4續(xù)下面程序畫出的曲線和圖4.4(e)中的相同。z1=x2+i*y1plot(z1)%以實部為橫坐標,虛部為縱坐標6/4/2023106.plot(x1,y1,x2,y2,…)繪制多條曲線plot命令還可以同時繪制多條曲線,用多個矩陣對為參數(shù)。每一對矩陣(xi,yi)均按照前面的方式解釋。例4.5繪制三條曲線,如圖4.5所示。x=0:0.1:2*pi;plot(x,sin(x),x,cos(x),x,sin(3*x))%畫三條曲線圖4.5三條曲線6/4/2023114.1.2繪制曲線的一般步驟P1181曲線數(shù)據準備:二維曲線,橫坐標和縱坐標數(shù)據變量;三維曲面,矩陣參變量和對應的函數(shù)值。2指定圖形窗口和子圖位置:默認時,打開FigureNo.1窗口或當前窗口、當前子圖;也可以打開指定的圖形窗口和子圖。3設置曲線的繪制方式:線型、色彩、數(shù)據點形。4設置坐標軸:坐標的范圍、刻度和坐標分格線5圖形注釋:圖名、坐標名、圖例、文字說明6著色、明暗、燈光、材質處理(僅對三維圖形使用)7視點、三度(橫、縱、高)比(僅對三維圖形使用)8圖形的精細修飾(圖形句柄操作):利用對象屬性值設置;利用圖形窗工具條進行設置。6/4/2023124.1.3多個圖形繪制方式1.指定圖形窗口默認“FigureNo.1”窗口,第二次使用plot命令時覆蓋。需要多個圖形窗口同時打開,使用figure語句。語法:figure(n) %產生新圖形窗口例“figure(1)”、“figure(2)”同時打開多個圖形窗口。2.同一窗口多個子圖如果需要在同一個圖形窗口中布置幾幅獨立的子圖,可以在plot命令前加上subplot命令。語法:subplot(m,n,k) %使(m×n)幅子圖中的第k幅成為當前圖6/4/202313例4.6用subplot命令畫子圖【例4.6】用subplot命令畫四個子圖,如圖4.6所示。x=0:0.1:2*pi;subplot(2,2,1)%2*2個子圖,左上方為當前圖plot(x,sin(x))subplot(2,2,2)%右上方為當前圖plot(x,cos(x))subplot(2,2,3)%左下方為當前圖plot(x,sin(3*x))subplot(2,2,4)%右下方為當前圖,省略逗號plot(x,cos(3*x))圖4.6四個子圖6/4/2023143.同一窗口多次疊繪語法:
holdon %使當前坐標系和圖形保留
holdoff %使當前坐標系和圖形不保留
hold %在以上兩個命令中切換說明:MATLAB會根據新圖形的大小,重新改變坐標系的比例。6/4/202315例4.7疊繪【例4.7】在同一窗口畫出函數(shù)sinx在區(qū)間[02π]的曲線和cosx在區(qū)間[-ππ]的曲線,如圖4.7(a)所示。x1=0:0.1:2*pi;plot(x1,sin(x1))holdonx2=-pi:.1:pi;plot(x2,cos(x2))圖4.7(a)用holdon在同一窗口畫出兩條曲線6/4/2023164.雙縱坐標圖語法:plotyy(x1,y1,x2,y2) %以左、右不同縱軸繪制兩條曲線說明:左縱軸用于(x1,y1)數(shù)據,右縱軸用于(x2,y2)數(shù)據來繪制兩條曲線。坐標軸的范圍、刻度都自動產生?!纠?.7續(xù)】用plotyy函數(shù)實現(xiàn)在同一圖形窗口繪制兩條曲線,如圖4.7(b)所示。plotyy(x1,sin(x1),x2,cos(x2))
(b)用plotyy在同一窗口畫出兩條曲線6/4/2023174.1.4曲線的線型顏色和數(shù)據點形顏色數(shù)據點間連線數(shù)據點形類型符號類型符號類型符號黃色品紅色(紫色)青色紅色綠色藍色白色黑色y(Yellow)m(Magenta)c(Cyan)r(Red)g(Green)b(Blue)w(White)k(Black)實線(默認)點線點劃線虛線-:-.--實點標記圓圈標記叉號形×十字形+星號標記*方塊標記□鉆石形標記
向下的三角形標記向上的三角形標記向左的三角形標記向右的三角形標記五角星標記☆六連形標記.ox+*sdv^<>ph表4.2線段、顏色與數(shù)據點形afive-pointedstar6/4/202318例4.8線段類型、顏色和數(shù)據點【例4.8】用不同線段類型、顏色和數(shù)據點形畫出sin(x)和cos(x)曲線,如圖4.8所示。x=0:0.1:2*pi;
plot(x,sin(x),'r-.')%用紅色點劃線畫出曲線holdonplot(x,cos(x),'b:o')%用藍色圓圈畫出曲線,用點線連接圖4.8在同一窗口畫出兩條曲線6/4/2023194.1.5設置坐標軸和文字標注1.坐標軸的控制※set(gca,'xtick',[0:0.5:4])
plot命令根據所給的坐標點自動地確定坐標軸的范圍,用坐標控制命令axis命令含義命令含義axisauto使用默認設置axisequal縱、橫軸采用等長刻度axismanual使當前坐標范圍不變axisfill在manual方式下起作用,使坐標充滿整個繪圖區(qū)axisoff取消軸背景axisimage縱、橫軸采用等長刻度,且坐標框緊貼數(shù)據范圍axison使用軸背景axisnormal默認矩形坐標系axisij矩陣式坐標,原點在左上方axissquare產生正方形坐標系axisxy普通直角坐標,原點在左下方axistight把數(shù)據范圍直接設為坐標范圍axis([xmin,xmax,ymin,ymax])設定坐標范圍,必須滿足xmin<xmax,ymin<ymax,可以取inf或-inf。axisvis3d保持高寬比不變,用于三維旋轉時避免圖形大小變化表4.3常用的坐標控制命令6/4/2023202.分格線和坐標框(1)使用grid命令顯示分格線語法:gridon/off %顯/不顯示分格線說明:不顯示分格線是MATLAB的默認設置。分格線的疏密取決于坐標刻度,如果要改變分格線的疏密,必須先定義坐標刻度。(2)使用box命令顯示坐標框語法:boxon %使當前坐標框呈封閉形式boxoff %使當前坐標框呈開啟形式6/4/2023213文字標注在圖形中添加標識性的注釋,文字標注包括:圖名(Title)、坐標軸名(Label)、文字注釋(Text)和圖例(Legend)。(1)添加圖名語法:title(s) %書寫圖名說明:s為圖名,為字符串,可以是英文或中文。(2)添加坐標軸名語法:xlabel(s)%橫坐標軸名ylabel(s)%縱坐標軸名(3)添加圖例語法:legend(s,pos)%在指定位置建立圖例(4)添加文字注釋語法:text(xt,yt,s) %在圖形的(xt,yt)坐標處書寫文字注釋可用圖形工具編輯?。。?/4/2023224.特殊符號類別命令字符命令字符命令字符命令字符希臘字母\alphaα\etaη\nuν\upsilonυ\betaβ\thetaθ\xiξ\UpsilonΥ\epsilonε\ThetaΘ\XiΕ\phiφ\gammaγ\iotaι\piπ\(zhòng)PhiΦ\GammaΓ\zetaζ\PiΠ\chiχ\deltaδ\kappaκ\rhoρ\psiψ\DeltaΔ\muμ\tauτ\PsiΨ\omegaω\lambdaλ\sigmaσ\OmegaΩ\LambdaΛ\SigmaΣ數(shù)學符號\approx≈\oplus≡\neq≠\leq≤\geq≥\pm±\times×\div÷\int∫\exists∝\infty∞\in∈\sim≌\forall~\angle∠\perp⊥\cup∪\cap∩\vee∨\wedge∧\surd√\otimes\oplus箭頭\uparrow↑\downarrow↓\rightarrow→\leftarrow←\leftrightarrow\updownarrow6/4/2023234.1.6交互式圖形命令1.ginput命令從圖上獲取數(shù)據。語法:[x,y]=ginput(n) %用鼠標從圖形上獲取n個點的坐標(x,y)2.gtext命令gtext命令是把字符串放置到圖形中鼠標所指定的位置上。語法:gtext(‘s’) %用鼠標把字符串放置到圖形上二者都不是很精確不能省略6/4/2023244.2三維圖形繪制4.2.1繪制三維曲線圖命令plot3是用來繪制三維曲線的,它的使用格式與二維繪圖的plot命令很相似。語法:plot3(x,y,z,'s') %繪制三維曲線plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)%繪制多條三維曲線【例4.13】三維曲線繪圖,如圖4.12所示。x=0:0.1:20*pi;plot3(x,sin(x),cos(x)) %按系統(tǒng)默認設置繪圖6/4/2023254.2.2繪制三維網線圖和曲面圖1meshgrid命令用來準備數(shù)據meshgrid命令是以x、y向量為基準,來產生在x-y平面的各柵格點坐標值的矩陣。語法:[X,Y]=meshgrid(x,y)說明:X、Y是柵格點的坐標,為矩陣;x、y為向量。
6/4/2023262.三維網線圖語法:mesh(z) %畫三維網線圖
mesh(x,y,z,c)【例4.14續(xù)】用mesh查看peaks函數(shù)的三維網線圖,如圖4.15所示。mesh(xx,yy,zz)圖4.15peaks函數(shù)的三維網線圖要區(qū)別于曲線圖!曲線沒有織網6/4/2023273.三維曲面圖
3.三維曲面圖語法:surf(z) %畫三維曲面圖surf(x,y,z,c)【例4.14續(xù)】用surf查看peaks函數(shù)的三維曲面圖,如圖4.16所surf(xx,yy,zz)圖4.16peaks函數(shù)的三維曲面圖黑線織網可以著色6/4/2023284.其它立體網線圖和曲面圖4.其它立體網線圖和曲面圖立體網線圖mesh命令還有幾種格式,meshc命令為立體網狀圖加等高線;meshz為立體網狀圖加“圍裙”?!纠?.14續(xù)】用meshz和meshc查看peaks函數(shù)的三維曲面圖,如圖4.17所示。meshz(xx,yy,zz)meshc(xx,yy,zz)圖4.17(a)peaks函數(shù)的曲面加“圍裙”(b)peaks函數(shù)的曲面圖加等高線contourmap
6/4/2023294.2.3立體圖形和圖軸的控制1.網格的隱藏在默認方式下,MATLAB在繪制圖形時前面的圖形會遮蓋后面的圖形,即后面的網格會隱藏,如果要使被遮蓋的網格也能呈現(xiàn)出來,可用“hiddenoff”命令。語法:
hiddenoff %顯示被遮蓋的網格
hiddenon %隱藏被遮蓋的網格圖4.18顯示網線的peaks函數(shù)穿透6/4/2023303.曲面的鏤空(挖空)網面也可默認繪制的曲面不透明,在希望鏤空的位置用NaN(nan)來取代矩陣在該部分的數(shù)值,所有的MATLAB作圖函數(shù)都會忽略NaN
數(shù)據點,實現(xiàn)“鏤空”效果?!纠?.15續(xù)】對peaks函數(shù)曲面實現(xiàn)鏤空效果,如圖4.20所示。z(10:20,10:20)=nan;%將部分數(shù)值用nan替換surf(x,y,z) %畫曲面圖圖4.20peaks函數(shù)鏤空部分矩陣的雙下標6/4/2023314.2.4色圖的控制1.色圖(colormap)(1)RGB三元組RGB三元行數(shù)組表示一種色彩,數(shù)組元素R、G、B在0~1之間,分別表示紅、綠、藍基色的相對亮度,通過三色的設置可以調制出不同顏色,如表4.7所示。顏色RGB成分Red(紅色)Green(綠色)Blue(藍色)Black(黑)000White(白)111Red(紅)100Green(綠)010Blue(藍)001Yellow(黃)110Magenta(品紅)101Cyan(青)011Gray(灰)Darkred(暗紅)0.500Copper(銅色)10.620.4Aquamarine(碧綠)0.4910.83表4.7常用顏色的RGB成分6/4/202332(2)預定義色圖函數(shù)(2)預定義色圖函數(shù)MATLAB系統(tǒng)提供了現(xiàn)成的可以預定義色圖的函數(shù),如表4.8所示為預定義色圖的函數(shù)表。命令說明hsvHSV的顏色對照表(默認值),以紅色開始和結束hot代表暖色對照表,黑、紅、黃、白濃淡色cool代表冷色對照表,青、品紅濃淡色summer代表夏天色對照表,綠、黃濃淡色gray代表灰色對照表,灰色線性濃淡色copper代表銅色對照表,銅色線性濃淡色autumn代表秋天顏色對照表,紅、黃濃淡色winter代表冬天色對照表,藍、綠濃淡色spring代表春天色對照表,青、黃濃淡色bone代表“X光片”的顏色對照表pink代表粉紅色對照表,粉紅色線性濃淡色flag代表“旗幟”的顏色對照表,紅、白、藍、黑交錯色jetHSV的變形,以藍色開始和結束prim代表三棱鏡對照表,紅、橘黃、黃、綠、藍交錯色表4.8預定義色圖的函數(shù)表6/4/202333(2)濃淡處理shading(2)濃淡處理shading每一個曲面都可以看作是由一塊塊的四方小片拼成,而且每一小片表面的顏色是均勻一致的,其顏色值由小片所在的曲面高度決定。如果要使小片表面的顏色產生連續(xù)性的變化可使用shading命令,shading命令的用法如表4.9所示。命令功能shadinginterp使小片根據四頂點的顏色產生連續(xù)的變化,或根據網線的線段兩端產生連續(xù)的變化,這種方式著色細膩但最費時。shadingflat小片或整段網線的顏色是一種顏色。shadingfaceted在flat著色的基礎上,同時在小片交接的邊勾畫黑色,這種方式立體表現(xiàn)力最強(默認方式)。表4.9
shading命令的用法6/4/202334(3)亮度處理brighten(3)亮度處理brighten可以用brighten命令來使色圖變亮或變暗。語法:brighten(a)【例4.18續(xù)】對peaks函數(shù)曲面加亮,并查看色圖矩陣。peaks;brighten(0.5)colormap6/4/202335示例1:示例2:P3025[xxyy
zz]=peaks;zz(10:20,10:20)=nan;subplot(1,3,1)plot3(xx,yy,zz)subplot(1,3,2)mesh(xx,yy,zz)subplot(1,3,3)surf(xx,yy,zz)colormapspringshadinginterpbrighten(0.4)6/4/2023364.3matlab的特殊圖形繪制※4.3.1條形圖條形圖常用于對統(tǒng)計的數(shù)據進行作圖,特別適用于少量且離散的數(shù)據。繪制條形圖的函數(shù)如表4.10所示。語法:bar(x,y,width,'參數(shù)') %畫條形圖bar3(y,z,width,'參數(shù)') %畫三維條形圖函數(shù)功能函數(shù)功能bar垂直條形圖bar3三維垂直條形圖barh水平條形圖bar3h三維水平條形圖表4.10條形圖函數(shù)6/4/202337【例4.19】【例4.19】用條形圖表示某年一月份中3日~6日連續(xù)四天的溫度數(shù)據,y矩陣的各列分別表示平均溫度、最高溫度和最低溫度,如圖4.23所示,用條形圖和三維條形圖分別表示。x=3:6;y=[5.300013.00000.40005.100011.8000-1.70003.70008.10000.60001.50007.7000-4.5000]bar(x,y) bar3(x,y)圖4.23(a)條形圖(b)三維條形圖6/4/2023384.3.2面積圖和實心圖※1.面積圖面積圖是在曲線與橫軸之間填充顏色,用于繪制面積圖的命令為“area”,只能用于二維繪圖。語法:area(y)
%畫面積圖
area(x,y)※2.實心圖實心圖是將數(shù)據的起點和終點連成多邊形,并填充顏色,繪制實心圖的命令為“fill”。語法:fill(x,y,c) %畫實心圖說明:c為實心圖的顏色不能省略c6/4/202339【例4.19續(xù)】【例4.19續(xù)】繪制面積圖和實心圖,并比較其區(qū)別,如圖4.24所示。area(x,y) %面積圖fill(x,y,'r') %紅色的實心圖
圖4.24(a)面積圖
(b)實心圖6/4/2023404.3.3直方圖用于建立直方圖的命令為“hist”,直方圖和條形圖的形狀相似,但直方圖用于顯示數(shù)據的分布規(guī)律,并具有統(tǒng)計的功能。語法:hist(y,x) %統(tǒng)計y在x附近的元素的個數(shù)
【例4.20】用直方圖表示正態(tài)分布的隨機數(shù)分布,圖4.25。y=randn(10,2)%產生10*2的正態(tài)分布的隨機數(shù)矩陣x=-2:0.5:2;hist(y,x) 圖4.25直方圖可檢查是否正態(tài)6/4/2023414.3.4餅圖餅圖是用于顯示向量中的各元素占向量元素總和的百分比,可以用pie和pie3命令分別繪制二維和三維餅圖。語法:
pie(x,explode,’label’) %畫二維餅圖
pie3(x,explode,’label’) %畫三維餅圖【例4.21】繪制四個季度支出額的餅圖,如圖4.26所示。y=[200100250400]; %四個季度支出額explode=[0010];pie(y,explode,{'第一季度','第二季度','第三季度','第四季度'})圖4.26餅圖6/4/2023424.5.3離散數(shù)據圖【例4.22】使用幾種繪制離散數(shù)據的命令來顯示的離散數(shù)據,如圖4.27所示。x=0:0.1:2*pi;y=sin(x).*exp(-2*x);subplot(3,1,1)stem(x,y,'filled') %畫火柴桿圖subplot(3,1,2)stairs(x,y) %畫階梯圖subplot(3,1,3)scatter(x,y) %畫點圖圖4.27離散數(shù)據圖區(qū)別于plot6/4/2023434.3.6對數(shù)坐標和極坐標1.對數(shù)坐標圖形對數(shù)坐標圖形有semilogx、semilogy和loglog命令。語法:semilogx(x,y,'參數(shù)')%繪制x為對數(shù)坐標的曲線semilogy(x,y,'參數(shù)')%繪制y為對數(shù)坐標的曲線loglog(x,y,‘參數(shù)’)%繪制x、y都為對數(shù)坐標的曲線6/4/202344【例4.23】【例4.23】求傳遞函數(shù)為的對數(shù)幅頻特性曲線,如圖4.28所示,橫坐標為w按對數(shù)坐標。w=logspace(-2,3,20); %頻率w為0.01到1000Aw=1./(w.*sqrt((0.5*w).^2+1)); %計算幅頻Lw=20*log10(Aw); %計算對數(shù)幅頻semilogx(w,Lw)title('對數(shù)幅頻特性曲線')圖4.28對數(shù)頻率特性6/4/2023454.3.8復向量圖1.compass命令compass繪制的是以原點為起點的一組復向量,因此又稱為羅盤圖。語法:compass(u,v) %畫羅盤圖compass(Z)2.feather命令feather繪制的是起點為(k,0)的復向量圖,又稱為羽毛圖。語法:feather(u,v) %畫羽毛圖feather(Z)6/4/202346【例4.25】【例4.25】用羅盤圖和羽毛圖繪制復向量,如圖4.31所示。theta=0:0.2:2*pi;z=sin(theta).*exp(j*theta);compass(z)feather(z)圖
4.31(a)羅盤圖(b)羽毛圖6/4/2023474.4圖形窗口的功能1.工具欄從MATLAB的圖形窗口帶有工具欄,工具欄如圖4.32所示。數(shù)據光標添加顏色條三維圖形旋轉圖形對象編輯添加圖例隱藏繪圖工具顯示繪圖工具圖4.32圖形窗口的工具條拆分窗口6/4/2023484.5對話框※1.輸入信息對話框輸入對話框為用戶的輸入信息提供了界面,使用inputdlg命令創(chuàng)建。輸入對話框中有兩個按鈕,分別為“Ok”和“Cancel”。語法answer=inputdlg(prompt,title,lineno,defans,addopts)%創(chuàng)建輸入對話框6/4/202349【例4.26】【例4.26】利用輸入對話框輸入二階系統(tǒng)的系數(shù),如圖4.35所示。prompt={'請輸入阻尼系數(shù)','請輸入無阻尼振蕩頻率'};defans={'0.707','1'};p=inputdlg(prompt,'輸入參數(shù)',1,defans)
6/4/2023502.輸出信息對話框MATLAB提供了幾種專用的對話框,用于顯示不同的輸出信息。(1)消息框msgbox消息框是用來顯示輸出信息,有一個“Ok”按鈕。語法:msgbox(message,title,icon,icondata,iconcmap,CreateMode)%創(chuàng)建消息框6/4/202351【例4.26續(xù)】【例4.26續(xù)】使用消息框顯示當阻尼系數(shù)大于1時的警告信息,如圖4.36所示。msgbox('阻尼系數(shù)輸入范圍出錯','警告','warn')圖4.36消息框6/4/202352(2)警告對話框warndlg
(3)錯誤提示對話框errordlg
(4)幫助對話框
(5)提問對話框questdlg
6/4/2023534.6句柄圖形4.6.1句柄圖形體系句柄圖形是一種面向對象的繪圖系統(tǒng),又稱為低層圖形,低層命令能直接操作基本繪圖要素,例如線、文字、面和圖形控件等基本繪圖要素。句柄圖形體系:Root(屏幕)Figure(圖)Uicontrol(界面控件)Axes(軸)Uimenu(界面菜單)Line(線條)Surface(表面)Rectangle(矩形)Patch(貼片)Image(圖像)Text(文字)Light(光源)圖4.41句柄圖形體系06/4/2023544.6.2圖形對象的操作1創(chuàng)建給對象句柄取名時應統(tǒng)一使用“h_對象名”,例如創(chuàng)建坐標軸對象取名為“h_axes”。命令功能說明h_figure=figure(n)創(chuàng)建第n個圖形窗口n為正整數(shù)h_axes=axes(‘position’,[left,bottom,width,height])創(chuàng)建坐標軸定義軸的位置和大小h_line=line(x,y,z)創(chuàng)建直線z省略則在二維平面上h_surface=surface(x,y,z,c)創(chuàng)建面x、y、z定義三維曲面,c是顏色參數(shù)h_rectangle=rectangle(‘position’,[x,y,w,h],’curvature’,[xc,yc])創(chuàng)建矩形x、y為左下頂點坐標,w、h為長方形的寬和高,xc、yc為曲率h_patch=patch(‘faces’,fac,’veitices’,vert)創(chuàng)建貼片fac為多邊形頂點的序號矩陣,vert為頂點矩陣h_image=image(x)創(chuàng)建圖像x為圖像數(shù)據矩陣h_text=text(x,y,’string’)創(chuàng)建文字x、y為字符串string的標注位置h_light=light(‘PropertyName’,Propertyvalue)創(chuàng)建光源設置光的入射方向h_uicontrol=uicontrol(‘PropertyName’,Propertyvalue)創(chuàng)建用戶界面控件PropertyName和Propertyvalue指定控件的類型h_uimenu=uimenu(‘propertyName’,Propertyvalue)創(chuàng)建用戶界面菜單propertyName和Propertyvalue指定菜單的形式6/4/2023552.對象句柄的獲取(1)當前對象句柄的獲取MATLAB提供了三個獲取當前對象句柄的命令,分別是gcf、gca、gco。語法:gcf %獲取當前圖形窗口句柄gca %獲取當前坐標軸句柄gco %獲取被鼠標最近點擊對象的句柄6/4/202356【例4.28】【例4.28】使用命令獲取圖形對象的句柄,如圖4.42所示。x=0:0.1:2*pi;
y=sin(x).*exp(-x);plot(x,y)text(pi,0,'\leftarrowexp(-x)*sin(x)=0')h_fig=gcf
%獲取圖形窗口的句柄h_axes=gca
%獲取坐標軸的句柄h_obj=gco
%獲取最近點擊對象的句柄圖4.42圖形對象6/4/202357(2)查找對象用命令findobj可以快速查找所有對象,以及獲取指定屬性值的對象句柄。語法:h=findobj
%返回根對象和所有子對象的句柄h=findobj(h_obj)%返回指定對象的句柄h=findobj(‘PropertyName’,PropertyValue)%返回符合指定屬性值的對象句柄h=findobj(h_obj,‘PropertyName’,PropertyValue)%在指定對象及子對象中查找符合指定屬性值的對象句柄例如:h_text=findobj(h_fig,‘string’,‘\leftarrowexp(-x)*sin(x)=0’)%查找符合屬性值的文字對象句柄h_text=101.00386/4/2023584.6.3圖形對象屬性的獲取和設置1.創(chuàng)建對象時設置屬性對象的屬性可以在創(chuàng)建時設置,在創(chuàng)建時句柄圖形對象可以設置多個屬性?!纠?.29】創(chuàng)建圖形對象。h_fig=figure('color','red','menubar','none','position',[0,0,300,300])或者使用結構數(shù)組創(chuàng)建圖形對象:ps.color='red';ps.position=[0,0,300,300];ps.menubar='none';h_fig=figure(ps)6/4/2023592.用get函數(shù)獲取屬性值get函數(shù)用于獲取指定對象的屬性值。語法:get(h_obj) %獲取句柄對象所有屬性的當前值get(h_obj,'PropertyName') %獲取句柄對象指定屬性的當前值【例4.29續(xù)】獲取圖形對象屬性。p=get(h_fig,'position')p=00300300c=get(h_fig,'color')c=1006/4/2023603.用set函數(shù)設置屬性值set函數(shù)用來設置對象的屬性值。語法:set(h_obj)%顯示句柄對象所有屬性和屬性值set(h_obj,'PropertyName')%顯示句柄對象指定屬性名的屬性值set(h_obj,'PropertyName','PropertyValue')%設置句柄對象指定屬性的屬性值set(h_obj,'PropertyStructure')%用結構數(shù)組設置句柄對象指定屬性的屬性值
【例4.30】使用低層命令畫圖,并設置各對象的屬性,如圖4.43所示。6/4/202361h_fig=figure('color','red','menubar','none','position',[0,0,300,300]);x=0:0.1:2*pi;y=sin(x).*exp(-x);h_line1=plot(x,y,'b');title('y=exp(-x)*sin(x)')set(gca,'ygrid','on')%顯示y網格>>line1width=get(h_line1,'linewidth')%獲取曲線寬度set(h_line1,'linewidth',3)%設置曲線寬度h_title=get(gca,'title')%獲取標題句柄titlefontsize=get(h_title_fontsize,'fontsize')%獲取字體大小set(h_title_fontsize,'fontsize',13)%設置題字體大小h_text1=text(pi,0,'\downarrow');%畫向下箭頭text1pos=get(h_text1,'position')%獲取文字位置h_text2=text(text1pos(1,1),text1pos(1,2)+0.025,'exp(-x)*sin(x)=0');%設置文字位置set(h_text1,‘fontsize’,13,‘color’,‘red’)%設置字體大小、顏色set(h_text2,'fontsize',13,'color','red')
6/4/202362示例x=0:0.1:2*pi;y=sin(x).*exp(-x);h_fig=figure(1)h_line=plot(x,y)h_title=title('曲線')h_text=gtext('\leftarrowsin(x).*exp(-x)')set(h_fig,'color','yellow')set(h_line,'linewidth',8)set(h_title,'fontsize',20,'color','red')set(h_text,'fontsize',22,'color','red')set(gca,'xgrid','on')set(gca,'gridlinestyle','--')6/4/2023634.7用戶圖形界面設計4.7.1可視化的界面環(huán)境打開可視化界面環(huán)境的方法有以下幾種:(1)選擇菜單“File”→“New”→“GUI”命令;(2)在命令窗口輸入“Guide”命令或輸入“GuideFilename”就會出現(xiàn)Guide快速開始界面。如圖4.44所示。圖4.44Guide快速開始界面6/4/202364Guide快速開始界面:空白的可視化圖形文件:“BlankGUI(Default)”具有控件或坐標軸、菜單等的界面:“BlankGUI(Default)”下面的“GUIwithUicontrols”等選項
M文件編輯器
圖形對象面板
界面編輯面板
對象
瀏覽器
屬性
編輯器
菜單
編輯器
對象對
齊工具
圖4.45可視化界面環(huán)境
6/4/2023654.7.2菜單1.菜單編輯器“Tools”→“MenuEditor…”或單擊工具欄“MenuEditor”按鈕,就會出現(xiàn)菜單編輯器窗口,如圖4.46所示。圖4.46菜單編輯器6/4/202366【例4.31】【
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人出售房產合同范本
- 加裝空調工程合同范本
- 購房合同有購房合同范本
- 單位合伙建房合同范例
- 關于獨家合同范本
- 醫(yī)藥會議合同范本
- 單位給買車合同范本
- 化工項目整體承建合同范本
- 產品總經銷合同范本
- 醫(yī)院加盟合同范本
- 03J111-1 輕鋼龍骨內隔墻
- 資產負債表模板范本
- 中國城市人口排名表
- 基于技術互補性的潛在技術合作伙伴選擇研究
- 人教版高中數(shù)學選擇性必修二導學案
- 牛津深圳版八年級下冊英語Unit 1-Unit 8各單元作文范文(實用)
- 人教版六年級下冊數(shù)學(全冊)同步隨堂練習一課一練
- 【數(shù)控加工】數(shù)控銑床教案
- 科室藥事管理記錄本
- GB/T 3860-1995文獻敘詞標引規(guī)則
- 2023年Beck自殺意念評估量表
評論
0/150
提交評論