版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第4章 MATLAB計算的可視化和GUI設(shè)計,,,,,4 . 1 二維曲線的繪制,4 . 2 MATLAB的特殊圖形繪制,4 . 3 MATLAB的三維圖形繪制,4 . 4 圖形繪制工具,,4 . 5 對話框,,4 . 6 句柄圖形,,4 . 7 用戶圖形界面設(shè)計,,4 . 8 圖形文件轉(zhuǎn)儲,4 . 1 二維曲線的繪制,MATLAB的二維曲線功能很強大,主要包括線型圖、柱狀圖、面積圖、方向圖、極坐標圖和散點圖,所有類型
2、如圖4.1所示。,4.1.1 基本繪圖命令,plot命令是MATLAB中最簡單而且使用最廣泛的1個繪圖命令,用來繪制二維曲線。語法:plot(x) %繪制以x為縱坐標的二維曲線plot(x,y) %繪制以x為橫坐標,y為縱坐標的二維曲線1.用plot(x) 繪制x向量曲線若x是長度為n的數(shù)值向量,則坐標系的縱坐標為向量x,橫坐標為MATLAB系統(tǒng)根據(jù)x向量的元素序號自動生成的從1開始的向量。plot(x)命
3、令用于在坐標系中順序地用直線段連接各點,生成1條折線,當向量的元素充分多時,可以得到1條光滑的曲線。,,4.1.1 基本繪圖命令,【例4.1】 用plot(x)命令畫直線,如圖4.2所示。>> x1=[1 2 3]x1 = 1 2 3>> plot(x1)>> x2=[0 1 0]x2 = 0 1 0>> plot(x2)
4、,,,4.1.1 基本繪圖命令,2.用plot(x,y)命令繪制向量x和y的曲線若參數(shù)x和y都是長度為n的向量,則x、y的長度必須相等,用plot(x,y)命令繪制縱坐標為向量y、橫坐標為向量x的曲線?!纠?.2】 繪制正弦曲線y=sin(x)和方波曲線,如圖4.3所示。>> x1=0:0.1:2*pi;>> y1=sin(x1); %y1為x1的正弦函數(shù)>> plot(x1,y
5、1)>> x2=[0 1 1 2 2 3 ];>> y2=[1 1 0 0 1 1 ];>> plot(x2,y2)>> axis([0 4 0 2]) %將坐標軸范圍設(shè)定為0~4和0~2,4.1.1 基本繪圖命令,,4.1.1 基本繪圖命令,3.用plot(x)命令繪制矩陣x的曲線若x是1個m?n的矩陣,則plot(x)命令為矩陣的每一列畫出1條線,共n條曲線,各曲
6、線自動地用不同顏色表示;每條線的橫坐標為向量1:m,m是矩陣的行數(shù),繪制方法與向量相同?!纠?.3】 矩陣圖形的繪制,如圖4.4所示。>> x1=[1 2 3;4 5 6];>> plot(x1)>> x2=peaks; %產(chǎn)生1個49*49的矩陣>> plot(x2),4.1.1 基本繪圖命令,4.用plot(x,y)命令繪制混合式曲線當plot(x,y)命令中
7、的參數(shù)x和y是向量或矩陣時,分別有以下幾種情況。(1)如果x是向量,而Y是矩陣,則x的長度與矩陣Y的行數(shù)或列數(shù)必須相等。如果x的長度與Y的行數(shù)相等,則向量x與矩陣Y的每列向量對應畫1條曲線;如果x的長度與Y的列數(shù)相等,向量x與Y的每行向量畫1條曲線;如果Y是方陣,則x和Y的行數(shù)和列數(shù)都相等,將向量x與矩陣Y的每列向量畫1條曲線。(2)如果X是矩陣,而y是向量,則y的長度必須等于X的行數(shù)或列數(shù),繪制的方法與前一種相似。(3)如果X和
8、Y都是矩陣,則大小必須相同,將矩陣X的每列和Y的每列畫1條曲線。,4.1.1 基本繪圖命令,【例4.4】 混合式圖形的繪制,如圖4.5所示。,,,4.1.1 基本繪圖命令,>> x1=[1 2 3];>> y1=[1 2 3;4 5 6]y1 = 1 2 3 4 5 6>> plot(x1,y1) %x1和y1的列數(shù)個數(shù)相同,x1為橫
9、坐標,y1每行為縱坐標>> y2=y1'y2 = 1 2 3 45 6>>Plot(x1,y2) %x1和y2的行數(shù)個數(shù)相同,x1為橫坐標,y1每列為縱坐標>> plot(y1,x1)%y1是矩陣,x1是向量,y1每行為橫坐標,x1為縱坐標>> plot(y2,x1)%y1是矩陣,x1是向量,y2每列為橫坐標,x1為
10、縱坐標>> x2=[1 1 1;2 2 2]x2 = 1 1 1 2 2 2>> plot(x2,y1) %x1和y1都是矩陣,x2每列為橫坐標,y1每列為縱坐標,,4.1.1 基本繪圖命令,5.用plot(z)命令繪制復向量曲線plot(z)中的參數(shù)z為復向量時,plot(z)和plot(real(z)、imag(z))是等效的,以實部作為橫坐標
11、,以虛部作為縱坐標?!纠?.4續(xù)】 以下程序畫出如圖4.5(e)所示的曲線。>> z1=x2+i*y1z1 = 1.0000 + 1.0000i 1.0000 + 2.0000i 1.0000 + 3.0000i 2.0000 + 4.0000i 2.0000 + 5.0000i 2.0000 + 6.0000i>> plot(z1) %以實部作為橫坐標,以虛部作為縱坐
12、標,,4.1.1 基本繪圖命令,6.用plot(x1,y1,x2,y2,…)命令繪制多條曲線plot命令還可以同時繪制多條曲線,用多個矩陣對為參數(shù),MATLAB自動以不同的顏色繪制不同曲線。每一對矩陣(Xi,Yi)均按照前面的方式解釋,不同的矩陣對之間,其維數(shù)可以不同?!纠?.5】 繪制3條曲線,如圖4.6所示。>>x = 0:pi/100:2*pi;>>y1 = sin(x);>>y2
13、 = sin(x+.5);>>y3 = sin(x+1);>>plot(x,y1,x,y2,x,y3);%畫3條曲線,4.1.1 基本繪圖命令,4.1.2 繪制曲線的一般步驟,在MATLAB中,無論是繪制二維還是三維圖形,如果要畫出相當滿意的彩色圖形,就要對圖形進行各種修飾,如表4.1所示為繪制二維、三維圖形一般步驟的歸納。,4.1.3 多個圖形繪制的方法,1.指定圖形窗口如果需要多個圖形窗口同
14、時打開時,可以使用figure語句。語法:figure(n) %產(chǎn)生新圖形窗口2.同一窗口多個子圖如果需要在同一圖形窗口中布置幾幅獨立的子圖,則可以在plot命令前加上subplot命令以便將1個圖形窗口劃分為多個區(qū)域,每個區(qū)域1幅子圖。語法:subplot(m,n,k)%使m?n幅子圖中的第k幅成為當前圖,,4.1.3 多個圖形繪制的方法,【例4.6】 用subplot命令畫4個子圖,如圖4.7所示。&g
15、t;> 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))>>
16、; subplot(224) %右下方為當前圖,省略逗號>> plot(x,cos(3*x)),4.1.3 多個圖形繪制的方法,,4.1.3 多個圖形繪制的方法,3.同一窗口多次疊繪在當前坐標系中繪圖時,每調(diào)用1次plot函數(shù),會擦掉圖形窗口中已有的圖形。為了在1個坐標系中增加新的圖形對象,可以用“hold”命令保留原圖形對象。語法:hold on %使當前坐標系和圖形保留hold off
17、%使當前坐標系和圖形不保留hold %在以上2個命令中切換,,【例4.7】 在同一窗口畫出函數(shù)sinx在區(qū)間[0,2?]的曲線和cosx在區(qū)間[??,?]的曲線,如圖4.8(a)所示。>> x1=0:0.1:2*pi;>> plot(x1,sin(x1))>> hold on>> x2=?pi:.1:pi;>> plot(x2,cos(x2)),4
18、.1.3 多個圖形繪制的方法,4.雙縱坐標圖語法:plotyy(x1,y1,x2,y2)%以左、右不同縱軸繪制2條曲線【例4.7續(xù)】 用plotyy函數(shù)實現(xiàn)在同一圖形窗口繪制2條曲線,如圖4.8(b)所示。>> plotyy(x1,sin(x1),x2,cos(x2))程序分析:plotyy函數(shù)用不同顏色繪制2條曲線,縱坐標軸在左右兩邊,橫坐標為??~2?。,4.1.4 曲線的線形、顏色和數(shù)據(jù)點形,使用
19、plot命令運行多種調(diào)用方式時,MATLAB自動以默認方式設(shè)置各曲線的線形、線段的顏色和數(shù)據(jù)點形等。實際上,plot命令還可以設(shè)置曲線的線段類型、顏色和數(shù)據(jù)點形等,如表4.2所示。,,4.1.4 曲線的線形、顏色和數(shù)據(jù)點形,在plot命令中可以通過使用表4.2中由符號組成的字符串,控制所畫線的線段類型、顏色和數(shù)據(jù)點形。語法:plot(x,y,s)【例4.8】 用不同的線段類型、顏色和數(shù)據(jù)點形在同一窗口中畫出sinx和cosx曲
20、線,如圖4.9所示。>> x=0:0.1:2*pi;>> plot(x,sin(x),'r?.') %用紅色點畫線畫出曲線>> hold on>> plot(x,cos(x),'b:o') %用藍色圓圈畫出曲線,用點線連接,4.1.5 設(shè)置坐標軸和文字標注,1.坐標軸的控制plot命令根據(jù)所給的坐標點自動確定坐標軸的范圍,用坐標控制命
21、令axis控制坐標軸的特性,表4.3列出了其常用的坐標控制命令。,,4.1.5 設(shè)置坐標軸和文字標注,2.分格線使用grid命令顯示分格線。語法:grid on%顯示分格線grid off%不顯示分格線grid %在以上2個命令間切換【例4.9】 在2個子圖中使用坐標軸、分格線和坐標框控制,如圖4.10所示。>> x=0:0.1:2*pi;>> subplot(2,1,1)
22、>> plot(sin(x),cos(x))>> axis equal %縱、橫軸采用等長刻度>> grid on %加分格線>> subplot(2,1,2)>> plot(x,exp(?x))>> axis([0,3,0,2]) %改變坐標軸范圍,4.1.5 設(shè)置坐標軸和文字標注,4.1.5 設(shè)置坐標軸和文字標注,3.文字標注
23、圖形的文字標注是指在圖形中添加標志性的注釋,文字標注包括:圖名(Title)、坐標軸名(Label)、文字注釋(Text)和圖例(Legend)。(1)添加圖名。語法:title(s)%書寫圖名(2)添加坐標軸名。語法:xlabel(s) %橫坐標軸名ylabel(s) %縱坐標軸名(3)添加圖例。語法:legend(s,pos) %在指定位置建立圖例legend off
24、%擦除當前圖中的圖例,4.1.5 設(shè)置坐標軸和文字標注,(4)添加文字注釋。語法:text(xt,yt,s)%在圖形的(xt,yt)坐標處書寫文字注釋【例4.10】 在圖形窗口中添加文字注釋,如圖4.11所示。,4.1.5 設(shè)置坐標軸和文字標注,>> x=0:0.1:2*pi;>> plot(x,sin(x))>> hold on>> plot(x,cos
25、(x),'ro')>> title('y1=sin(x),y2=cos(x)') %添加標題>> xlabel('x') %添加橫坐標名>> legend('sin(x)','cos(x)',4) %在右下角添加圖例>> text(pi,sin(pi),'x=\pi'
26、) %在pi,sin(pi)處添加文字注釋,,4.1.5 設(shè)置坐標軸和文字標注,4.坐標刻度在坐標軸上默認的刻度是自動等距離分隔的,但有些刻度需要特別標注出來,因此需要使用坐標刻度專門標注。通過設(shè)置xtick和ytick屬性可以劃分坐標刻度。通過設(shè)置xticklabel和yticklabel屬性可以標注將坐標刻度的標志。【例4.10續(xù)】 在圖4.11中將橫坐標按照每隔?/2進行標識,則圖形顯示如圖4.12所示。>
27、>axis([0,2*pi,-2,2])>>set(gca,'XTick',0:pi/2:2*pi)%橫坐標刻度>>set(gca,'XTickLabel',{'0','pi/2','pi','pi3/2','2pi'})%橫坐標標識,4.1.5 設(shè)置坐標軸和文字標注,4.1.5
28、設(shè)置坐標軸和文字標注,5.特殊符號如果需要對圖形中的文字標志使用特殊字符,如希臘字母、數(shù)學符等,則可以使用如表4.5所示的對應字符,如例4.10中的“text(pi,sin(pi),'x=\pi')”顯示了希臘字符“?”。,4.1.5 設(shè)置坐標軸和文字標注,如果需要對文字進行上、下標設(shè)置,或設(shè)置字體大小,則必須在文字標志前先使用如表4.6所示的文字設(shè)置值。,4.1.5 設(shè)置坐標軸和文字標注,【例4.11】 在MA
29、TLAB的圖形窗口中寫出標題為表達式 ,字體大小為16號,其特殊字符顯示如圖4.13所示。>> figure(1)>> title('\fontsize{16}y(\omega)=\int^{\infty}_{0}y(t)e^{?j\omegat}dt'),,4.1.6 交互式圖形命令,1.ginput命令ginput命令與其他圖形命令的原理不同,不是把數(shù)據(jù)表現(xiàn)在圖上,而是從圖上獲取數(shù)據(jù)。
30、ginput命令在數(shù)值優(yōu)化和工程設(shè)計中都十分有用,僅適用于二維圖形。語法:[x,y]=ginput(n)%用鼠標從圖形上獲取n個點的坐標(x,y)2.gtext命令gtext命令是把字符串放置到圖形中鼠標所指定的位置上,該命令對二維、三維圖形都適用。語法:gtext('s') %用鼠標把字符串放置到圖形上,,4.1.6 交互式圖形命令,【例4.12】 在y=sin(x)的圖形中將(?,0)和
31、(2?,0)點的坐標取出,并在(2?,0)點寫“2?”字符串。>> x=0:0.1:2*pi;>> plot(x,sin(x))>> [m,n]=ginput(2) %取2點坐標m = 3.1532 6.2984n = ?0.0029 ?0.0088>> gtext('2\pi') %寫2?程序分析:由于鼠標所取點的位置有
32、些偏差,因此ginput命令獲取的坐標并不是精確在(?,0)和(2?,0)點上;gtext命令在圖中鼠標單擊處寫了“2?”字符串。,4 . 2 MATLAB的特殊圖形繪制,4.2.1 條形圖條形圖常用于對統(tǒng)計的數(shù)據(jù)進行作圖,特別適用于少量且離散的數(shù)據(jù)。繪制條形圖的函數(shù)如表4.7所示。,語法:bar(x,y,width,'參數(shù)') %畫條形圖bar3(y,z,width,'參數(shù)')
33、%畫三維條形圖,,4.2.1 條形圖,【例4.13】 用條形圖表示某年1月份中3日至6日連續(xù)4天的溫度數(shù)據(jù),Y矩陣的各列分別表示平均溫度、最高溫度和最低溫度,如圖4.15所示,用條形圖和三維條形圖分別表示。>> x=3:6;>> y=[5.3000 13.0000 0.40005.1000 11.8000 ?1.70003.7000 8.1000 0.6000
34、1.5000 7.7000 ?4.5000]>> bar(x,y) %畫條形圖>> bar3(x,y) %畫三維條形圖,4.2.2 面積圖和實心圖,1.面積圖面積圖在曲線與橫軸之間填充顏色,用于繪制面積圖的命令為“area”,只能用于二維繪圖。語法:area(y) %畫面積圖area(x,y)2.實心圖實心圖是將數(shù)據(jù)的起點和終點連成多邊形,并填充顏色,繪制實心
35、圖的命令為“fill”。語法:fill(x,y,c) %畫實心圖,4.2.2 面積圖和實心圖,【例4.13續(xù)】 繪制面積圖和實心圖,并比較其區(qū)別,如圖4.16所示。>> area(x,y) %面積圖>> fill(x,y,'r') %紅色的實心圖,4.2.3 直方圖,語法:hist(y,m) %統(tǒng)計每段的元素個數(shù)并畫出直方圖hist(y,x)【
36、例4.14】 用直方圖表示正態(tài)分布的隨機數(shù)分布,如圖4.17所示。,4.2.3 直方圖,>> y=randn(10,2) %產(chǎn)生10*2的正態(tài)分布的隨機數(shù)矩陣y = ?1.1878 ?1.1859 ?2.2023 ?1.0559 0.9863 1.4725 ?0.5186 0.0557 0.3274 ?1.2173 0.2341 ?0.0412
37、 0.0215 ?1.1283 ?1.0039 ?1.3493 ?0.9471 ?0.2611 ?0.3744 0.9535>> x=?2:0.5:2;>> hist(y,x),,4.2.4 餅形圖,餅形圖用于顯示向量中的每個元素占向量元素總和的百分比,可以用pie和pie3命令分別繪制二維和三維餅形圖。語法:pie(x,explode, 'label
38、') %畫二維餅形圖pie3(x,explode, 'label') %畫三維餅形圖【例4.15】 繪制4個季度支出額的餅形圖,如圖4.18所示。>> y=[200 100 250 400];%4個季度支出額>> explode=[0 0 1 0];>> pie(y,explode,{'第1季度','第2季度',
39、'第3季度','第4季度'}),,4.2.5 離散數(shù)據(jù)圖,【例4.16】 使用幾種繪制離散數(shù)據(jù)的命令顯示 的離散數(shù)據(jù),如圖4.19所示。>> x=0:0.1:2*pi;>> y=sin(x).*exp(?2*x);>> subplot(3,1,1)>> stem(x,y,'filled') %畫火柴桿圖>>
40、subplot(3,1,2)>> stairs(x,y) %畫階梯圖>> subplot(3,1,3)>> scatter(x,y) %畫點圖,4.2.6 對數(shù)坐標和極坐標圖,1.對數(shù)坐標圖形對數(shù)坐標圖形由semilogx、semilogy和loglog命令實現(xiàn)。語法:semilogx(x,y,'參數(shù)') %繪制x為對數(shù)坐標的曲線semilogy
41、(x,y,'參數(shù)') %繪制y為對數(shù)坐標的曲線loglog(x,y,'參數(shù)') %繪制x、y都為對數(shù)坐標的曲線,,4.2.6 對數(shù)坐標和極坐標圖,【例4.17】 求傳遞函數(shù)為 的對數(shù)幅頻特性曲線,如圖4.20所示,橫坐標為w,是對數(shù)坐標。,,4.2.6 對數(shù)坐標和極坐標圖,>> w=logspace(?2,3,20); %頻率w為0.01~1 000&g
42、t;> Aw=1./(w.*sqrt((0.5*w).^2+1)); %計算幅頻>> Lw=20*log10(Aw); %計算對數(shù)幅頻>> semilogx(w,Lw)>> title('對數(shù)幅頻特性曲線'),,4.2.6 對數(shù)坐標和極坐標圖,2.極坐標圖極坐標圖由polar命令實現(xiàn)。語法:polar(theta,radius,'參數(shù)'
43、) %繪制極坐標圖【例4.17續(xù)】 用極坐標圖表示r=2sinθ,θ在-?~?之間,如圖4.21所示。>> theta=-pi:0.01:pi;>> r=2*sin(5*theta).^2;>> polar(theta,r),,4.2.7 等高線圖,使用meshc和surfc命令可以繪制帶有等高線的三維網(wǎng)線和曲面圖,另外還可以使用contour和contour3命令直接繪制等高線。
44、語法:contour(Z,n) %繪制Z矩陣的等高線contour(x,y,z,n) %繪制以x和y指定x、y坐標的等高線【例4.18】 繪制peaks函數(shù)的等高線,如圖4.22所示。>> [x,y,z]=peaks;>> contour(x,y,z) %畫二維等高線>> contour3(z,30) %畫30條三維等高線,4.2.8 復向量圖,1.com
45、pass命令compass命令繪制的是以原點為起點的1組復向量,又稱為羅盤圖。語法:compass(u,v) %畫羅盤圖compass(z) 2.feather命令feather命令繪制的是起點為(k,0)的復向量圖,又稱為羽毛圖。語法:feather(u,v) %畫羽毛圖feather (Z),,4.2.8 復向量圖,【例4.19】 用羅盤圖和羽毛圖繪制復向量,如圖4.23所示。>&
46、gt; theta=0:0.2:2*pi;>> z=sin(theta).*exp(j*theta);>> compass(z)>> feather(z),,4 . 3 MATLAB的三維圖形繪制,4.3.1 繪制三維線圖命令語法:plot3(x,y,z, 's') %繪制三維曲線plot3(x1,y1,z1, 's1',x2,y2,z2, &
47、#39;s2',…) %繪制多條三維曲線【例4.20】 三維曲線繪圖,如圖4.24所示。>> x=0:0.1:20*pi;>> plot3(x,sin(x),cos(x)) %按系統(tǒng)默認設(shè)置繪圖,,4.3.2 繪制三維網(wǎng)線圖和曲面圖,1.meshgrid命令meshgrid命令以x、y向量為基準,產(chǎn)生在x?y平面的各柵格點坐標值的矩陣。語法:[X,Y]=meshgrid(x,
48、y) 例如,將x(1?m)向量和y(1?n)向量轉(zhuǎn)換為(n?m)的矩陣:>> x=[1 2 3 4];>> y=[5 6 7];>> [xx,yy]=meshgrid(x,y)xx = 1 2 3 4 1 2 3 4 1 2 3 4yy = 5 5 5
49、5 6 6 6 6 7 7 7 7,,4.3.2 繪制三維網(wǎng)線圖和曲面圖,2.三維網(wǎng)線圖語法:mesh(z) %畫三維網(wǎng)線圖mesh(x,y,z,c) 【例4.20續(xù)】 用mesh查看peaks函數(shù)的三維網(wǎng)線圖,如圖4.25所示。>> mesh(xx,yy,zz),,4.3.2 繪制三維網(wǎng)線圖和曲面圖,3.三維曲面圖語法:su
50、rf (z) %畫三維曲面圖surf (x,y, z,c) 【例4.20續(xù)】 用surf查看peaks函數(shù)的三維曲面圖,如圖4.26所示。>> surf (xx,yy,zz),,4.3.2 繪制三維網(wǎng)線圖和曲面圖,4.其他立體網(wǎng)線圖和曲面圖立體網(wǎng)線圖mesh命令還有幾種格式,如meshc命令為立體網(wǎng)狀圖加等高線;meshz為立體網(wǎng)狀圖加“圍裙”?!纠?.20續(xù)】 用meshz和meshc觀察pe
51、aks函數(shù)的三維曲面圖,如圖4.27所示。>> meshz(xx,yy,zz)>> meshc(xx,yy,zz),4.3.3 立體圖形與圖軸的控制,1.網(wǎng)格的隱藏默認方式下,MATLAB在繪制圖形時前面的圖形會遮蓋后面的圖形,即后面的網(wǎng)格會隱藏。如果要使被遮蓋的網(wǎng)格也能呈現(xiàn)出來,可用“hidden off”命令,隱藏則使用“hidden on”命令。2.改變視角立體圖形的觀測角度是由方位角和俯仰角決
52、定的,與x平面所成的夾角稱為方位角(Azimuth),與z平面所成的夾角稱為俯仰角(Elevation)。二維圖形時,系統(tǒng)默認方位角?0°,俯仰角?90°;三維圖形時,系統(tǒng)默認方位角? ?37.5°,俯仰角=30°。若對三維圖形的觀測角度不同,則顯示也不同,如果要改變觀測角度,可用“view”命令。 語法:view([az,el]) %通過方位角和俯仰角改變視角view([vx,
53、vy,vz]) %通過直角坐標改變視角,,4.3.3 立體圖形與圖軸的控制,【例4.21】 顯示peaks函數(shù)的網(wǎng)線,并改變該函數(shù)的視角,如圖4.28所示。>> [x,y,z]=peaks; %peaks函數(shù)>> mesh(x,y,z) %繪制曲面圖>> hidden off %顯示網(wǎng)格>> view(0,0)>> view(0,
54、90)>> view(?37.5,30) %恢復原視角,,4.3.3 立體圖形與圖軸的控制,3.曲面的鏤空【例4.21續(xù)】 對peaks函數(shù)曲面實現(xiàn)鏤空效果,如圖4.29所示。>> z(10:20,10:20)=nan; %將一部分數(shù)值用nan替換>> surf(x,y,z) %畫曲面圖,4.3.4 色彩的控制,1.色圖(colormap)(1)RGB三元組。
55、RGB三元行數(shù)組表示1種色彩,數(shù)組元素R、G、B的值在0~1之間,分別表示紅、綠、藍基色的相對亮度。通過三色的設(shè)置可以調(diào)制出不同顏色,如 表4.8所示。,4.3.4 色彩的控制,(2)預定義色圖函數(shù)。MATLAB系統(tǒng)提供了現(xiàn)成的可以預定義色圖的函數(shù),如表4.9所示為預定義色圖的函數(shù)表。,,4.3.4 色彩的控制,【例4.21續(xù)】 查看暖色色圖。>> colormap hot(8) %產(chǎn)生暖色peaks函
56、數(shù)曲面>> colormap ans = 0.3333 0 0 0.6667 0 0 1.0000 0 0 1.0000 0.3333 0 1.0000 0.6667 0 1.0000 1.0000 0 1
57、.0000 1.0000 0.5000 1.0000 1.0000 1.0000,,4.3.4 色彩的控制,2.色圖的顯示和處理可以利用colorbar命令顯示色圖。colorbar命令以不同顏色代表曲面的高度,并顯示1個水平或垂直的顏色標尺?!纠?.22】 用colorbar命令顯示色圖,如圖4.30所示。>> peaks;>> colormap cool %
58、產(chǎn)生冷色peaks函數(shù)曲面>> colorbar %顯示顏色標尺,4.3.4 色彩的控制,(2)濃淡處理shading。在前面的例子中,每一個曲面都可以視做由一塊塊的四方小片拼成,而且每一小片表面的顏色是均勻一致的,其顏色值由小片所在的曲面高度決定。如果要使小片表面的顏色產(chǎn)生連續(xù)性的變化,則可使用shading命令。shading命令的用法如表4.10所示。,,4.3.4 色彩的控制,【例4.23】 使用sh
59、ading命令的interp和faceted方式進行濃淡處理的peaks函數(shù)曲面圖,如圖4.31所示。>> subplot(1,2,1)>> peaks;>> shading interp>> subplot(1,2,2)>> peaks;>> shading faceted,4.3.4 色彩的控制,(3)亮度處理brighten??梢杂胋righte
60、n命令使色圖變亮或變暗。語法:brighten(a),4 . 4 圖形繪制工具,在MATLAB的命令窗口中輸入“plottools”,就可以打開圖形窗口,如圖4.32所示。,4 . 4 圖形繪制工具,當選擇圖形中的坐標軸時,就會出現(xiàn)如圖4.33所示的坐標軸屬性面板,可用于設(shè)置標題、坐標刻度和坐標軸標簽等。,4 . 4 圖形繪制工具,當選擇圖形中的曲線時,就出現(xiàn)如圖4.34所示的線型屬性面板,可用于設(shè)置線型、曲線類型和曲線點等。
61、,,4 . 5 對話框,1.“輸入?yún)?shù)”對話框使用inputdlg命令創(chuàng)建“輸入?yún)?shù)”對話框,該對話框為用戶提供了輸入信息的界面。“輸入?yún)?shù)”對話框中有2個按鈕,分別為“OK”和“Cancel”。語法:answer = inputdlg(prompt,title,lineno,defans,addopts) %創(chuàng)建“輸入?yún)?shù)”對話框【例4.24】 利用“輸入?yún)?shù)”對話框輸入二階系統(tǒng)的系數(shù),如圖4.35所示。>>
62、; prompt={'請輸入阻尼系數(shù)','請輸入無阻尼振蕩頻率'};>> defans={'0.707','1'};>> p=inputdlg(prompt,'輸入?yún)?shù)',1,defans),,4 . 5 對話框,2.輸出信息對話框MATLAB提供了幾種專用的對話框,用于顯示不同的輸出信息。(1)消息框msgbox。消息框是
63、用來顯示輸出信息的,有1個“OK”按鈕。語法:msgbox(message,title,icon,icondata,iconcmap,CreateMode) %創(chuàng)建消息框【例4.24續(xù)】 使用消息框顯示當阻尼系數(shù)大于1時的警告信息,如圖4.36所示。>> msgbox('阻尼系數(shù)輸入范圍出錯','警告','warn'),4 . 5 對話框,(2)其他輸出對話框。
64、MATLAB還提供了專門的對話框,包括警告對話框,錯誤提示對話框,幫助對話框和提問對話框,如表4.11所示提供了對話框語法、例句和圖形窗口。,,4 . 5 對話框,3.文件管理對話框(1)打開文件對話框uigetfile命令。uigetfile命令用于提供“打開文件”對話框,可以選擇文件類型和路徑。語法:[FileName, PathName] = uigetfile(FiltrEspec, Title,x,y)【例4.25】
65、 利用“打開文件”對話框選擇MATLAB目錄下的文件license.txt,如 圖4.37所示。>> [fname,pname]=uigetfile('*.*','打開文件',100,100)fname =license.txtpname =D:\MATLAB6p1\,,4 . 5 對話框,(2)“保存文件”對話框uiputfile命令。uiputfile命令用于提供“
66、保存文件”對話框,可以選擇文件類型和路徑。語法:[FileName, PathName] = uiputfile(FiltrEspec, Title,x,y)【例4.25續(xù)】 利用“保存文件”對話框選擇文件。>> [fname1,pname1]=uiputfile('Ex0431.mat','保存文件'),4 . 6 句柄圖形,4.6.1 句柄圖形體系句柄圖形體系由若干個圖形對
67、象組成,如圖4.38所示。,4.6.2 圖形對象的操作,1.圖形對象的創(chuàng)建每次創(chuàng)建1個對象時,MATLAB為該對象建立1個唯一的句柄。除了根屏幕外,所有的圖形對象都由與之同名的命令創(chuàng)建,每個命令的格式及功能如表4.12所示。,,4.6.2 圖形對象的操作,2.創(chuàng)建對象時設(shè)置屬性【例4.26】 創(chuàng)建圖形對象。>> h_fig=figure('color','red','men
68、ubar','none','position',[0,0,300,300])h_fig = 1或者使用結(jié)構(gòu)數(shù)組創(chuàng)建圖形對象:>> ps.color='red';>> ps.position=[0,0,300,300];>> ps.menubar='none';>> h_fig=figure(ps)
69、h_fig = 1程序分析:創(chuàng)建1個窗口,背景為紅色,沒有菜單條,在屏幕的(0,0)位置,寬度、高度為300。,,4.6.2 圖形對象的操作,3.對象句柄的獲取對象句柄的獲取有以下3種方法。(1)當前對象句柄的獲取。MATLAB提供了3個獲取當前對象句柄的命令,分別是gcf、gca、gco。語法:gcf %獲取當前圖形窗口句柄gca %獲取當前坐標軸句柄gco %獲取被鼠標最
70、近單擊的對象的句柄【例4.27】 使用命令獲取圖形對象的句柄,如圖4.39所示。,4.6.2 圖形對象的操作,>> 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
71、_fig = 1>> h_axes=gca %獲取坐標軸的句柄h_axes = 100.0013>> h_obj=gco %獲取最近單擊的對象的句柄h_obj = 3.0017,,4.6.2 圖形對象的操作,(2)查找對象。用命令 findobj可以快速查找所有對象,以及獲取指定屬性值的對象句柄。語法:h=findobj %返回根對象和所有子對象的句柄
72、h=findobj(h_obj) %返回指定對象的句柄h=findobj('PropertyName',PropertyValue)%返回符合指定屬性值的對象句柄h=findobj(h_obj, 'PropertyName', PropertyValue)%在指定對象及子對象中查找符合指定屬性值的對象句柄【例4.27續(xù)】 使用findobj命令獲取圖4.39中圖形對象的句柄。>
73、;> findobj %返回根對象和所有子對象的句柄ans = 0 1.0000 100.0013 101.0038 3.0017>> h_text=findobj(h_fig,'string','\leftarrowexp(?x)*sin(x)=0') %查找符合屬性值的文字對象句柄h_text = 101.0038,,4
74、.6.2 圖形對象的操作,4.用get函數(shù)獲取屬性值get函數(shù)用于獲取指定對象的屬性值。語法:get(h_obj) %獲取句柄對象所有屬性的當前值get(h_obj, 'PropertyName') %獲取句柄對象指定屬性的當前值【例4.27續(xù)】 獲取圖形對象屬性。>> p=get(h_fig,'position')p = 0 0 300
75、 300>> c=get(h_fig,'color')c = 1 0 0,4.6.2 圖形對象的操作,5.用set函數(shù)設(shè)置屬性值set函數(shù)用來設(shè)置對象的屬性值。語法:set(h_obj) %顯示句柄對象所有屬性和屬性值set(h_obj, 'PropertyName') %顯示句柄對象指定屬性名的屬性值set(h_obj, '
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第4章-matlab計算的可視化和gui設(shè)計
- 第四章 matlab計算的可視化
- matlab 特殊圖形和高維可視化
- 計算機仿真和可視化設(shè)計
- matlab課程設(shè)計---惡狼追兔的可視化問題
- 科學計算可視化報告
- 基于mvvm模式的嵌入式gui可視化設(shè)計器的設(shè)計與實現(xiàn)
- 基于MATLAB的高等數(shù)學可視化系統(tǒng).pdf
- 基于matlab的可視化界面制作說明書
- 基于Matlab分布式計算工具箱的流場計算及可視化.pdf
- 基于matlab軟件的電磁場的可視化研究
- MEMS計算可視化研究.pdf
- 計算機可視化編程
- 數(shù)據(jù)和函數(shù)的可視化
- 數(shù)據(jù)和函數(shù)的可視化
- 基于MVVM模式的嵌入式GUI可視化設(shè)計器的設(shè)計與實現(xiàn).pdf
- 數(shù)字電視接收機可視化GUI集成開發(fā)環(huán)境的設(shè)計和實現(xiàn).pdf
- 基于MATLAB的剪切型框架可視化健康監(jiān)測研究.pdf
- 基于MATLAB的可視化圖像質(zhì)量評價系統(tǒng)研究.pdf
- 快遞系統(tǒng)碳足跡計算分析與可視化設(shè)計
評論
0/150
提交評論