版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章MATLAB計(jì)算的可視化和GUI設(shè)計(jì)——二維曲線的繪制二維曲線的繪制MATLAB的二維曲線功能非常強(qiáng)大,在MATLAB的主界面中專門有“繪圖”面板,主要包括線型圖、柱狀圖、面積圖、方向圖、極坐標(biāo)圖和散點(diǎn)圖等,單擊下拉箭頭可見到如圖所示的二維圖類型。01基本繪圖函數(shù)用plot(x)繪制x向量曲線用plot(x,y)函數(shù)繪制向量x和y的曲線用plot(x)函數(shù)繪制矩陣x的曲線用plot(x,y)函數(shù)繪制混合式曲線用plot(z)函數(shù)繪制復(fù)向量曲線用plot(x1,y1,x2,y2,…)函數(shù)繪制多條曲線基本繪圖函數(shù)plot是MATLAB中最簡(jiǎn)單而且使用最廣泛的1個(gè)繪圖函數(shù),用來繪制二維曲線。
語法:plot(x) %繪制以x為縱坐標(biāo)的二維曲線plot(x,y) %繪制以x為橫坐標(biāo),y為縱坐標(biāo)的二維曲線說明:x和y可以是向量或矩陣。1.用plot(x)繪制x向量曲線若x是長(zhǎng)度為n的數(shù)值向量,則坐標(biāo)系的縱坐標(biāo)為向量x,橫坐標(biāo)為MATLAB系統(tǒng)根據(jù)x向量的元素序號(hào)自動(dòng)生成的從1開始的向量。plot(x)函數(shù)用于坐標(biāo)系中順序地用直線段連接各點(diǎn),生成1條折線,當(dāng)向量的元素充分多時(shí),可以得到1條光滑的曲線。【例4.1】
用plot(x)函數(shù)畫直線。>>x1=[123]x1=123>>plot(x1)>>x2=[010]x2=010>>plot(x2)基本繪圖函數(shù)畫出的直線如圖。
(a)x1曲線
(b)x2曲線基本繪圖函數(shù)2.用plot(x,y)函數(shù)繪制向量x和y的曲線若參數(shù)x和y都是長(zhǎng)度為n的向量,則x、y的長(zhǎng)度必須相等,用plot(x,y)函數(shù)繪制縱坐標(biāo)為向量y、橫坐標(biāo)為向量x的曲線。【例4.2】
繪制正弦曲線y=sin(x)和方波曲線。>>x1=0:0.1:2*pi;>>y1=sin(x1); %y1為x1的正弦函數(shù)>>plot(x1,y1)>>x2=[011223];>>y2=[110011];>>plot(x2,y2)>>axis([0402]) %將坐標(biāo)軸范圍設(shè)定為0~4和0~2基本繪圖函數(shù)繪制效果如圖。
(a)正弦曲線
(b)方波曲線基本繪圖函數(shù)3.用plot(x)函數(shù)繪制矩陣x的曲線若x是1個(gè)m
n的矩陣,則plot(x)函數(shù)為矩陣的每一列畫出1條線,共n條曲線,各曲線自動(dòng)地用不同顏色表示;每條線的橫坐標(biāo)為向量1:m,m是矩陣的行數(shù),繪制方法與向量相同?!纠?.3】
矩陣圖形的繪制。>>x1=[123;456];>>plot(x1)>>x2=peaks; %產(chǎn)生1個(gè)49×49的矩陣>>plot(x2)基本繪圖函數(shù)繪制效果如圖。
(a)x1曲線
(b)x2曲線基本繪圖函數(shù)4.用plot(x,y)函數(shù)繪制混合式曲線當(dāng)plot(x,y)函數(shù)中的參數(shù)x和y是向量或矩陣時(shí),分別有以下幾種情況:(1)如果x是向量,而y是矩陣,則x的長(zhǎng)度與矩陣y的行數(shù)或列數(shù)必須相等。如果x的長(zhǎng)度與y的行數(shù)相等,則向量x與矩陣y的每列向量對(duì)應(yīng)畫1條曲線;如果x的長(zhǎng)度與y的列數(shù)相等,向量x與y的每行向量畫1條曲線;如果y是方陣,則x和y的行數(shù)和列數(shù)都相等,將向量x與矩陣y的每列向量畫1條曲線。(2)如果x是矩陣,而y是向量,則y的長(zhǎng)度必須等于x的行數(shù)或列數(shù),繪制的方法與前一種相似。(3)如果x和y都是矩陣,則大小必須相同,將矩陣x的每列和y的每列畫1條曲線。基本繪圖函數(shù)【例4.4_1】
混合式圖形的繪制,如圖。
(a)(x1,y1)曲線
(b)(y2,x1)曲線(c)(x2,y1)曲線基本繪圖函數(shù)>>x1=[123];>>y1=[123;456]y1=123456>>plot(x1,y1) %x1和y1的列數(shù)個(gè)數(shù)相同,x1為橫坐標(biāo),y1每行為縱坐標(biāo)>>y2=y1'y2=142536>>plot(y2,x1) %y2是矩陣,x1是向量,y2每列為橫坐標(biāo),x1為縱坐標(biāo)>>x2=[111;222]x2=111222>>plot(x2,y1) %x2和y1都是矩陣,x2每列為橫坐標(biāo),y1每列為縱坐標(biāo)基本繪圖函數(shù)5.用plot(z)函數(shù)繪制復(fù)向量曲線plot(z)中的參數(shù)z為復(fù)向量時(shí),plot(z)和plot(real(z),imag(z))是等效的,以實(shí)部作為橫坐標(biāo),以虛部作為縱坐標(biāo)?!纠?.4_2】
以下程序畫出如圖所示的曲線。>>z1=x2+i*y1z1=1.0000+1.0000i1.0000+2.0000i1.0000+3.0000i2.0000+4.0000i2.0000+5.0000i2.0000+6.0000i>>plot(z1) %以實(shí)部作為橫坐標(biāo),以虛部作為縱坐標(biāo)基本繪圖函數(shù)6.用plot(x1,y1,x2,y2,…)函數(shù)繪制多條曲線plot函數(shù)還可以同時(shí)繪制多條曲線,用多個(gè)矩陣對(duì)作為參數(shù),MATLAB自動(dòng)以不同的顏色繪制不同曲線。每一對(duì)矩陣(xi,yi)均按照前面的方式解釋,不同的矩陣對(duì)之間,其維數(shù)可以不同。【例4.5】
繪制3條曲線,如圖。>>x=0:pi/100:2*pi;>>y1=sin(x);>>y2=sin(x+.5);>>y3=sin(x+1);>>plot(x,y1,x,y2,x,y3); %畫3條曲線02繪制曲線的一般步驟繪制曲線的一般步驟在MATLAB中,無論是繪制二維還是三維圖形,如果要畫出相當(dāng)滿意的彩色圖形,就要對(duì)圖形進(jìn)行各種修飾,如表所示為繪制二維、三維圖形一般步驟的歸納。步
驟內(nèi)
容1曲線數(shù)據(jù)準(zhǔn)備:對(duì)于二維曲線,準(zhǔn)備橫坐標(biāo)和縱坐標(biāo)數(shù)據(jù)變量;對(duì)于三維曲面,準(zhǔn)備矩陣參變量和對(duì)應(yīng)的函數(shù)值2指定圖形窗口和子圖位置:默認(rèn)時(shí),打開Figure1窗口或當(dāng)前窗口、當(dāng)前子圖;也可以打開指定的圖形窗口和子圖3設(shè)置曲線的繪制方式:線型、色彩、數(shù)據(jù)點(diǎn)形4設(shè)置坐標(biāo)軸:坐標(biāo)的范圍、刻度和坐標(biāo)分格5圖形注釋:圖名、坐標(biāo)名、圖例、文字說明6著色、明暗、燈光、材質(zhì)處理(僅對(duì)三維圖形使用)7視點(diǎn)、三度(橫、縱、高)比(僅對(duì)三維圖形使用)8圖形的精細(xì)修飾(圖形句柄操作):利用對(duì)象屬性值進(jìn)行設(shè)置;利用圖形窗口工具條進(jìn)行設(shè)置03多個(gè)圖形繪制的方法
指定圖形窗口同一窗口多個(gè)子圖同一窗口多次疊繪雙縱坐標(biāo)圖多個(gè)圖形繪制的方法
1.指定圖形窗口本書4.1.1小節(jié)中介紹的plot函數(shù)都是在默認(rèn)的“Figure1”窗口中繪制圖形的,當(dāng)?shù)?次使用plot函數(shù)時(shí),就將第1次繪制的圖形覆蓋了。因此,如果需要同時(shí)打開多個(gè)圖形窗口時(shí),可以使用figure語句。語法:figure(n) %產(chǎn)生新圖形窗口說明:如果該窗口不存在,則產(chǎn)生新圖形窗口并設(shè)置為當(dāng)前圖形窗口,該窗口名為“Figuren”,而不關(guān)閉其他窗口。例如,可以使用“figure(1)”“figure(2)”等語句同時(shí)打開多個(gè)圖形窗口。2.同一窗口多個(gè)子圖如果需要在同一圖形窗口中布置幾幅獨(dú)立的子圖,則可以在plot函數(shù)前加上subplot函數(shù),以便將1個(gè)圖形窗口劃分為多個(gè)區(qū)域,每個(gè)區(qū)域1幅子圖。語法:subplot(m,n,k) %使m
n幅子圖中的第k幅成為當(dāng)前圖說明:將圖形窗口劃分為m
n幅子圖,k是當(dāng)前子圖的編號(hào),“,”可以省略。子圖的序號(hào)編排原則是:左上方為第1幅,先向右、后向下依次排列,子圖彼此之間獨(dú)立。多個(gè)圖形繪制的方法
【例4.6】
用subplot函數(shù)畫4個(gè)子圖,如圖。>>x=0:0.1:2*pi;>>subplot(2,2,1) %分割為2×2個(gè)子圖,左上方為當(dāng)前圖>>plot(x,sin(x))>>subplot(2,2,2) %右上方為當(dāng)前圖>>plot(x,cos(x))>>subplot(2,2,3) %左下方為當(dāng)前圖>>plot(x,sin(3*x))>>subplot(224) %右下方為當(dāng)前圖,省略逗號(hào)>>plot(x,cos(3*x))如果在使用繪圖函數(shù)之后,想清除圖形窗口以繪制其他圖形,應(yīng)使用“clf”命令清除圖形窗口。>>clf %清除子圖多個(gè)圖形繪制的方法
3.同一窗口多次疊繪在當(dāng)前坐標(biāo)系中繪圖時(shí),每調(diào)用1次plot函數(shù),會(huì)擦掉圖形窗口中已有的圖形。為了在1個(gè)坐標(biāo)系中增加新的圖形對(duì)象,可以用“hold”命令保留原圖形對(duì)象。語法:holdon %使當(dāng)前坐標(biāo)系和圖形保留holdoff %使當(dāng)前坐標(biāo)系和圖形不保留hold %在以上2個(gè)命令中切換說明:在設(shè)置了“holdon”后,如果繪制多個(gè)圖形對(duì)象,則在生成新的圖形時(shí)保留當(dāng)前坐標(biāo)系中已存在的圖形對(duì)象,MATLAB會(huì)根據(jù)新圖形的大小,重新改變坐標(biāo)系的比例。多個(gè)圖形繪制的方法
【例4.7_1】用“hold”命令在同一窗口多次疊繪,畫出函數(shù)sinx在區(qū)間[0,2
]的曲線和cosx在區(qū)間[
,
]的曲線,如圖所示。>>x1=0:0.1:2*pi;>>plot(x1,sin(x1))>>holdon>>x2=-pi:.1:pi;>>plot(x2,cos(x2))多個(gè)圖形繪制的方法
4.雙縱坐標(biāo)圖在實(shí)際應(yīng)用中常常需要把同一自變量的2個(gè)不同量綱,以及不同數(shù)量級(jí)的函數(shù)量的變化繪制在同一張圖上。例如,在同一張圖上畫出放大器輸入、輸出電流的時(shí)間變化曲線,電壓、電流的時(shí)間變化曲線,溫度、壓力的時(shí)間響應(yīng)曲線等。MATLAB使用plotyy函數(shù)可以實(shí)現(xiàn)在同一圖形中使用左、右雙縱坐標(biāo)繪制曲線。語法:plotyy(x1,y1,x2,y2) %以左、右不同縱軸繪制2條曲線說明:左縱軸用于(x1,y1)數(shù)據(jù),右縱軸用于(x2,y2)數(shù)據(jù),以繪制2條曲線。坐標(biāo)軸的范圍、刻度都自動(dòng)產(chǎn)生。多個(gè)圖形繪制的方法
【例4.7_2】用plotyy函數(shù)實(shí)現(xiàn)在同一圖形窗口繪制2條曲線,如圖所示。>>plotyy(x1,sin(x1),x2,cos(x2))程序分析:plotyy函數(shù)用不同顏色繪制2條曲線,縱坐標(biāo)軸在左、右兩邊,橫坐標(biāo)為
~2
。04曲線的線形、顏色和數(shù)據(jù)點(diǎn)形
曲線的線形、顏色和數(shù)據(jù)點(diǎn)形
使用plot函數(shù)運(yùn)行多種調(diào)用方式時(shí),MATLAB自動(dòng)以默認(rèn)方式設(shè)置各曲線的線形、線段的顏色和數(shù)據(jù)點(diǎn)形等。實(shí)際上,plot函數(shù)還可以設(shè)置曲線的線段類型、顏色和數(shù)據(jù)點(diǎn)形等,如表。
顏
色數(shù)據(jù)點(diǎn)間連線數(shù)據(jù)點(diǎn)形類
型符
號(hào)類
型符
號(hào)類
型符
號(hào)黃色品紅色(紫色)青色紅色綠色藍(lán)色白色黑色y(Yellow)m(Magenta)c(Cyan)r(Red)g(Green)b(Blue)w(White)k(Black)實(shí)線(默認(rèn))點(diǎn)線點(diǎn)畫線虛線
:
.
實(shí)點(diǎn)標(biāo)記圓圈標(biāo)記叉號(hào)形×十字形+星號(hào)標(biāo)記*方塊標(biāo)記□鉆石形標(biāo)記
向下的三角形標(biāo)記向上的三角形標(biāo)記向左的三角形標(biāo)記向右的三角形標(biāo)記五角星標(biāo)記☆六連形標(biāo)記.o×+*sdv^<
>
ph曲線的線形、顏色和數(shù)據(jù)點(diǎn)形
在plot函數(shù)中可以通過使用表4.2中由符號(hào)組成的字符串,控制所畫線的線段類型、顏色和數(shù)據(jù)點(diǎn)形。語法:plot(x,y,s)說明:x為橫坐標(biāo)矩陣,y為縱坐標(biāo)矩陣,s為類型說明字符串參數(shù);s字符串可以是線段類型、顏色和數(shù)據(jù)點(diǎn)形3種類型的符號(hào)之一,也可以是3種類型符號(hào)的組合。【例4.8】用不同的線段類型、顏色和數(shù)據(jù)點(diǎn)形在同一窗口中畫出sinx和cosx曲線。>>x=0:0.1:2*pi;>>plot(x,sin(x),'r-.') %用紅色點(diǎn)畫線畫出曲線>>holdon>>plot(x,cos(x),'b:o') %用藍(lán)色圓圈畫出曲線,用點(diǎn)線連接曲線的線形、顏色和數(shù)據(jù)點(diǎn)形
繪制效果如圖。05設(shè)置坐標(biāo)軸和文字標(biāo)注坐標(biāo)軸的控制分格線文字標(biāo)注坐標(biāo)刻度特殊符號(hào)設(shè)置坐標(biāo)軸和文字標(biāo)注1.坐標(biāo)軸的控制plot函數(shù)根據(jù)所給的坐標(biāo)點(diǎn)自動(dòng)確定坐標(biāo)軸的范圍,用坐標(biāo)控制命令axis控制坐標(biāo)軸的特性,表列出了其常用的坐標(biāo)控制命令。命
令含
義命
令含
義axisauto使用默認(rèn)設(shè)置axisequal縱、橫軸采用等長(zhǎng)刻度axismanual使當(dāng)前坐標(biāo)范圍不變axisfill在manual方式下起作用,使坐標(biāo)充滿整個(gè)繪圖區(qū)axisoff取消軸背景axisimage縱、橫軸采用等長(zhǎng)刻度,且坐標(biāo)框緊貼數(shù)據(jù)范圍axison使用軸背景axisnormal默認(rèn)矩形坐標(biāo)系axisij矩陣式坐標(biāo),原點(diǎn)在左上方axissquare產(chǎn)生正方形坐標(biāo)系axisxy普通直角坐標(biāo),原點(diǎn)在左下方axistight把數(shù)據(jù)范圍直接設(shè)為坐標(biāo)范圍axis([xmin,xmax,ymin,ymax])設(shè)定坐標(biāo)范圍,必須滿足xmin<xmax,ymin<ymax,可以取inf或
infaxisvis3d保持高、寬比不變,用于三維旋轉(zhuǎn)時(shí)避免圖形大小變化設(shè)置坐標(biāo)軸和文字標(biāo)注2.分格線使用grid命令顯示分格線。語法:gridon %顯示分格線gridoff %不顯示分格線grid
%在以上2個(gè)命令間切換說明:MATLAB的默認(rèn)設(shè)置是不顯示分格線?!纠?.9】在2個(gè)子圖中使用坐標(biāo)軸、分格線和坐標(biāo)框控制。>>subplot(2,1,1)>>plot(sin(x),cos(x))>>axisequal %縱、橫軸采用等長(zhǎng)刻度>>gridon %加分格線>>subplot(2,1,2)>>plot(x,exp(-x))>>axis([0,3,0,2]) %改變坐標(biāo)軸范圍設(shè)置坐標(biāo)軸和文字標(biāo)注運(yùn)行效果如圖。設(shè)置坐標(biāo)軸和文字標(biāo)注3.文字標(biāo)注圖形的文字標(biāo)注是指在圖形中添加標(biāo)志性的注釋,文字標(biāo)注包括圖名(Title)、坐標(biāo)軸名(Label)、文字注釋(Text)和圖例(Legend)。(1)添加圖名。語法:title(s) %書寫圖名說明:s為圖名,類型為字符串,可以是英文或中文。(2)添加坐標(biāo)軸名。語法:xlabel(s) %橫坐標(biāo)軸名ylabel(s) %縱坐標(biāo)軸名(3)添加圖例。語法:legend(s) %建立圖例legendoff %擦除當(dāng)前圖中的圖例說明:參數(shù)s是圖例中的文字注釋,如果有多個(gè)注釋則可以用's1','s2',…的方式。設(shè)置坐標(biāo)軸和文字標(biāo)注(4)添加文字注釋。語法:text(xt,yt,s) %在圖形的(xt,yt)坐標(biāo)處書寫文字注釋【例4.10_1】在圖形窗口中添加文字注釋。>>x=0:0.1:2*pi;>>plot(x,sin(x))>>holdon>>plot(x,cos(x),'ro')>>title('y1=sin(x),y2=cos(x)') %添加標(biāo)題>>xlabel('x') %添加橫坐標(biāo)名>>legend('sin(x)','cos(x)') %添加圖例>>text(pi,sin(pi),'x=\pi') %在(pi,sin(pi))處添加文字注釋設(shè)置坐標(biāo)軸和文字標(biāo)注運(yùn)行效果如圖。設(shè)置坐標(biāo)軸和文字標(biāo)注4.坐標(biāo)刻度在坐標(biāo)軸上默認(rèn)的刻度是自動(dòng)等距離分隔的,但有些刻度需要特別標(biāo)注出來,因此需要使用坐標(biāo)刻度專門標(biāo)注。通過設(shè)置xtick和ytick屬性可以劃分坐標(biāo)刻度。通過設(shè)置xticklabel和yticklabel屬性可以標(biāo)注坐標(biāo)刻度。【例4.10_2】在坐標(biāo)軸、分格線和坐標(biāo)框控制圖中將橫坐標(biāo)按照每隔
/2進(jìn)行標(biāo)識(shí),則圖形顯示如圖。>>axis([0,2*pi,-2,2])>>set(gca,'XTick',0:pi/2:2*pi) %橫坐標(biāo)刻度>>set(gca,'XTickLabel',{'0','pi/2','pi','pi3/2','2pi’}) %橫坐標(biāo)標(biāo)識(shí)設(shè)置坐標(biāo)軸和文字標(biāo)注5.特殊符號(hào)如果需要對(duì)圖形中的文字標(biāo)志使用特殊字符,如希臘字母、數(shù)學(xué)符號(hào)等,則可以使用如表所示的對(duì)應(yīng)字符,如例4.10中的“text(pi,sin(pi),'x=\pi')”顯示了希臘字符“
”。類
別命
令字
符命
令字
符命
令字
符命
令字
符
希臘字母\alphaα\etaη\nuν\upsilon
\betaβ\thetaθ\xiξ\Upsilon
\epsilonε\ThetaΘ\XiΕ\phi
\gammaγ\iotaι\pi
\Phi
\GammaΓ\zetaζ\Pi
\chiX
\deltaδ\kappaκ\rhoρ\psi
\DeltaΔ\muμ\tauτ\Psi
\omegaω\lambdaλ\sigmaσ
\OmegaΩ\LambdaΛ\SigmaΣ
數(shù)學(xué)符號(hào)\approx≈\oplus≡\neq≠\leq≤\geq≥\pm±\times×\div÷\int∫\exists∝\infty∞\in∈\sim≌\(chéng)forall~\angle∠\perp⊥\cup∪\cap∩\vee∨\wedge∧\surd√\otimes\oplus
箭頭\uparrow↑\downarrow↓\rightarrow→\leftarrow←\leftrightarrow?\updownarrow?
設(shè)置坐標(biāo)軸和文字標(biāo)注如果需要對(duì)文字進(jìn)行上、下標(biāo)設(shè)置,或設(shè)置字體大小,則必須在文字標(biāo)志前先使用如表所示的文字設(shè)置值。命
令含
義\fontname{s}字體的名稱,s為TimesNewRoman、Courier、宋體等\fontsize{n}字號(hào)大小,n為正整數(shù),默認(rèn)為10(points)\s字體風(fēng)格,s可以為bf(黑體)、it(斜體一)、sl(斜體二)、rm(正體)等^{s}將s變?yōu)樯蠘?biāo)_{s}將s變?yōu)橄聵?biāo)【例4.11】在MATLAB的圖形窗口中寫出標(biāo)題為表達(dá)式
,字體大小為16號(hào),其特殊字符顯示如圖。>>figure(1)>>title('\fontsize{16}y(\omega)=\int^{\infty}_{0}y(t)e^{-j\omegat}dt')06交互式圖形函數(shù)ginput函數(shù)gtext函數(shù)交互式圖形函數(shù)1.ginput函數(shù)ginput函數(shù)與其他圖形函數(shù)的原理不同,不是把數(shù)據(jù)表現(xiàn)在圖上,而是從圖上獲取數(shù)據(jù)。ginput函數(shù)在數(shù)值優(yōu)化和工程設(shè)計(jì)中都十分有用,僅適用于二維圖形。語法:[x,y]=ginput(n) %用鼠標(biāo)從圖形上獲取n個(gè)點(diǎn)的坐標(biāo)(x,y)說明:n應(yīng)為正整數(shù),是通過鼠標(biāo)從圖上獲得數(shù)據(jù)點(diǎn)的個(gè)數(shù);x、y用來存放所取點(diǎn)的坐標(biāo)。2.gtext函數(shù)gtext函數(shù)是把字符串放置到圖形中鼠標(biāo)所指定的位置上,該函數(shù)對(duì)二維、三維圖形都適用。語法:gtext('s') %用鼠標(biāo)把字符串放置到圖形上說明:如果參數(shù)s是單個(gè)字符串或單行字符串矩陣,那么1次鼠標(biāo)操作就可把全部字符以單行形式放置在圖上;如果參數(shù)s是多行字符串矩陣,那么每操作一次鼠標(biāo)只能放置1行字符串,需要通過多次鼠標(biāo)操作,把一行一行字符串放在圖形的不同位置。交互式圖形函數(shù)【例4.12】在y=sin(x)的圖形中將(
,0)和(2
,0)點(diǎn)的坐標(biāo)取出,并在(2
,0)點(diǎn)寫“2
”字符串。>>x=0:0.1:2*pi;>>plot(x,sin(x))>>[m,n]=ginput(2) %取2點(diǎn)坐標(biāo)m=3.15326.2984n=
0.0029
0.0088>>gtext('2\pi') %寫2
程序分析:由于鼠標(biāo)所取點(diǎn)的位置有些偏差,因此ginput函數(shù)獲取的坐標(biāo)并不是精確在(
,0)和(2
,0)點(diǎn)上;gtext函數(shù)在圖中鼠標(biāo)單擊處寫了“2
”字符串。第4章MATLAB計(jì)算的可視化和GUI設(shè)計(jì)——圖形對(duì)象01句柄圖形體系句柄圖形體系句柄圖形是一種面向?qū)ο蟮睦L圖系統(tǒng),又稱為低層圖形。低層命令能夠直接操作基本繪圖要素,如線、文字、面和圖形控件等基本繪圖要素,能夠更細(xì)致、更個(gè)性地表現(xiàn)圖形。但低層命令使用起來較難,不像高層命令那樣簡(jiǎn)明易懂。句柄圖形體系由若干個(gè)圖形對(duì)象組成,如圖。02圖形對(duì)象的操作
圖形對(duì)象的創(chuàng)建創(chuàng)建對(duì)象時(shí)設(shè)置屬性對(duì)象句柄的獲取用get函數(shù)獲取屬性值用set函數(shù)設(shè)置屬性值對(duì)象句柄的刪除圖形對(duì)象的操作
1.圖形對(duì)象的創(chuàng)建每次創(chuàng)建1個(gè)對(duì)象時(shí),MATLAB為該對(duì)象建立1個(gè)唯一的句柄。除了根屏幕外,所有的圖形對(duì)象都由與之同名的函數(shù)創(chuàng)建,每個(gè)函數(shù)的格式及功能如表所示,表中的每個(gè)函數(shù)在創(chuàng)建對(duì)象的同時(shí),等式的左邊為該對(duì)象的句柄。命
令功
能說
明h=figure(n)創(chuàng)建第n個(gè)圖形窗口n為正整數(shù)h=axes('position',[left,bottom,width,height])創(chuàng)建坐標(biāo)軸定義軸的位置和大小h=line(x,y,z)創(chuàng)建直線若z省略則在二維平面上h=surface(x,y,z,c)創(chuàng)建面x、y、z定義三維曲面,c是顏色參數(shù)h=rectangle('position',[x,y,w,h],'curvature',[xc,yc])創(chuàng)建矩形x、y為左下頂點(diǎn)坐標(biāo),w、h為長(zhǎng)方形的寬和高,xc、yc為曲率h=patch('faces',fac,'veitices',vert)創(chuàng)建貼片fac為多邊形頂點(diǎn)的序號(hào)矩陣,vert為頂點(diǎn)矩陣h=image(x)創(chuàng)建圖像x為圖像數(shù)據(jù)矩陣h=text(x,y,'string')創(chuàng)建文字x、y為字符串string的標(biāo)注位置h=light('PropertyName',PropertyValue)創(chuàng)建光源設(shè)置光的入射方向h=uicontrol('PropertyName',PropertyValue)創(chuàng)建用戶界面控件PropertyName和PropertyValue指定控件的類型h=uimenu('PropertyName',PropertyValue)創(chuàng)建用戶界面菜單PropertyName和PropertyValue指定菜單的形式h=animatedline('PropertyName',PropertyValue)創(chuàng)建動(dòng)畫曲線動(dòng)畫曲線需要addpoints函數(shù)繪制點(diǎn)圖形對(duì)象的操作
2.創(chuàng)建對(duì)象時(shí)設(shè)置屬性對(duì)象屬性由屬性名和相應(yīng)的屬性值組成。屬性名是字符串,通常第1個(gè)字母大寫,沒有空格。為了方便對(duì)屬性名的使用,MATLAB不區(qū)分大小寫,只要不產(chǎn)生歧義甚至可以不必寫全,如坐標(biāo)軸對(duì)象的位置屬性用“Position”“position”“pos”屬性名都可以?!纠?.13】創(chuàng)建圖形對(duì)象。>>h_fig=figure('color','red','menubar','none','position',[0,0,300,300])h_fig=
Figure(3)-屬性:Number:3Name:''Color:[100]Position:[00300300]Units:'pixels'
顯示所有屬性圖形對(duì)象的操作
或者使用結(jié)構(gòu)數(shù)組創(chuàng)建圖形對(duì)象:>>ps.color='red';>>ps.position=[0,0,300,300];>>ps.menubar='none';>>h_fig=figure(ps)h_fig=
Figure(4)-屬性:Number:4Name:''Color:[100]Position:[00300300]Units:'pixels'
顯示所有屬性程序分析:創(chuàng)建1個(gè)窗口,背景為紅色,沒有菜單條,在屏幕的(0,0)位置,寬度、高度為300。圖形對(duì)象的操作
3.對(duì)象句柄的獲取(1)當(dāng)前對(duì)象句柄的獲取MATLAB提供了3個(gè)獲取當(dāng)前對(duì)象句柄的命令,分別是“gcf”“gca”“gco”。語法:gcf %獲取當(dāng)前圖形窗口句柄gca %獲取當(dāng)前坐標(biāo)軸句柄gco %獲取被鼠標(biāo)最近單擊的對(duì)象的句柄圖形對(duì)象的操作
>>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_fig=
Figure(1)-屬性:Number:1Name:''Color:[0.94000.94000.9400]Position:[440378560420]Units:'pixels'
顯示所有屬性>>h_axes=gca %獲取坐標(biāo)軸的句柄h_axes=
Axes-屬性:XLim:[07]YLim:[-0.05000.3500]XScale:'linear'YScale:'linear'GridLineStyle:'-'Position:[0.13000.11000.77500.8150]Units:'normalized'
顯示所有屬性>>h_obj=gco %獲取最近單擊的對(duì)象的句柄h_obj=0×0空GraphicsPlaceholder
數(shù)組?!纠?.14_1】使用命令獲取圖形對(duì)象的句柄。圖形對(duì)象的操作
運(yùn)行結(jié)果如圖。圖形對(duì)象的操作
(2)查找對(duì)象用findobj函數(shù)可以快速查找所有對(duì)象,以及獲取指定屬性值的對(duì)象句柄。語法:h=findobj %返回根對(duì)象和所有子對(duì)象的句柄h=findobj(h_obj) %返回指定對(duì)象的句柄h=findobj('PropertyName',PropertyValue) %返回符合指定屬性值的對(duì)象句柄h=findobj(h_obj,'PropertyName',PropertyValue) %在指定對(duì)象及子對(duì)象中查找符合指定屬性 %值的對(duì)象句柄說明:h_obj為指定對(duì)象句柄;PropertyName為屬性名;PropertyValue為屬性值。圖形對(duì)象的操作
【例4.14_2】使用findobj函數(shù)獲取上圖中圖形對(duì)象的句柄。>>findobj %返回根對(duì)象和所有子對(duì)象的句柄ans=5×1graphics
數(shù)組:RootFigure(1)AxesText(\leftarrowexp(-x)*sin(x)=0)Line>>h_text=findobj(h_fig,'string','\leftarrowexp(-x)*sin(x)=0') %查找符合屬性值的文字對(duì)象句柄h_text=
Text(\leftarrowexp(-x)*sin(x)=0)-屬性:String:'\leftarrowexp(-x)*sin(x)=0'FontSize:10FontWeight:'normal'FontName:'Helvetica'Color:[000]HorizontalAlignment:'left'Position:[3.141600]Units:'data'
顯示所有屬性圖形對(duì)象的操作
4.用get函數(shù)獲取屬性值get函數(shù)用于獲取指定對(duì)象的屬性值。語法:get(h_obj) %獲取句柄對(duì)象所有屬性的當(dāng)前值get(h_obj,'PropertyName') %獲取句柄對(duì)象指定屬性的當(dāng)前值【例4.14_3】獲取圖形對(duì)象屬性。>>p=get(h_fig,'position')p=440378560420>>c=get(h_fig,'color')c=0.94000.94000.9400程序分析:圖形對(duì)象的顏色為紅色,用RGB三元組表示。圖形對(duì)象的操作
5.用set函數(shù)設(shè)置屬性值set函數(shù)用來設(shè)置對(duì)象的屬性值。語法:set(h_obj) %設(shè)置句柄對(duì)象所有屬性和屬性值set(h_obj,'PropertyName') %設(shè)置句柄對(duì)象指定屬性名的屬性值set(h_obj,'PropertyName','PropertyValue') %設(shè)置句柄對(duì)象指定屬性的屬性值set(h_obj,'PropertyStructure') %用結(jié)構(gòu)數(shù)組設(shè)置句柄對(duì)象指定屬性的屬性值【例4.15】使用set函數(shù)設(shè)置雙縱坐標(biāo)的曲線屬性。圖形對(duì)象的操作
程序分析:獲取兩條曲線的句柄,通過set函數(shù)可以為兩條曲線設(shè)置線型和顏色,如圖。圖形對(duì)象的操作
【例4.16_1】使用低層函數(shù)畫圖,并設(shè)置各對(duì)象的屬性。圖形對(duì)象如圖。圖形對(duì)象的操作
6.對(duì)象句柄的刪除在獲取了圖形對(duì)象的句柄后,就可以對(duì)圖形對(duì)象進(jìn)行操作。刪除圖形對(duì)象使用delete(h_obj)函數(shù),該命令將刪除句柄所指對(duì)象和所有子對(duì)象,而且不提示確認(rèn),因此使用時(shí)要小心。【例4.16_2】刪除曲線。>>delete(h_line1)第4章MATLAB計(jì)算的可視化和GUI設(shè)計(jì)——MATLAB的特殊圖形繪制01條
形
圖
條形圖
條形圖常用于對(duì)統(tǒng)計(jì)的數(shù)據(jù)進(jìn)行作圖,特別適用于少量且離散的數(shù)據(jù)。繪制條形圖的函數(shù)如表。函
數(shù)功
能函
數(shù)功
能bar垂直條形圖bar3三維垂直條形圖barh水平條形圖bar3h三維水平條形圖語法:bar(x,y,width,'參數(shù)') %畫條形圖bar3(y,z,width,'參數(shù)') %畫三維條形圖說明:x是橫坐標(biāo)向量,省略時(shí)默認(rèn)值是1:m,m為y的向量長(zhǎng)度。y是縱坐標(biāo),可以是向量或矩陣,當(dāng)y是向量時(shí)每個(gè)元素對(duì)應(yīng)1個(gè)豎條;當(dāng)y是m
n的矩陣時(shí),將畫出m組豎條,每組包含n條。width是豎條的寬度,省略時(shí)默認(rèn)寬度是0.8,如果寬度大于1,則條與條之間將重疊。條形圖【例4.17_1】用條形圖表示某年1月份中3至6日連續(xù)4天的溫度數(shù)據(jù)。>>x=3:6;>>y=[5.300013.00000.4000 5.100011.8000-1.7000 3.70008.10000.6000 1.50007.7000-4.5000]>>bar(x,y,'barwidth',0.2) %畫條形圖并設(shè)置寬度>>bar3(x,y) %畫三維條形圖運(yùn)行結(jié)果用條形圖和三維條形圖分別表示如圖。
條形圖【例4.17_2】使用圖形對(duì)象句柄設(shè)置圖形的屬性。>>h_b=bar(x,y) %使用句柄對(duì)象創(chuàng)建柱狀圖h_b=1×3Bar
數(shù)組:BarBarBar>>set(h_b(1),'barwidth',0.2)程序分析:在工作區(qū)可以看到,h_b變量是1×3的數(shù)組,每個(gè)元素為一組柱狀圖,因此h_b(1)表示第一個(gè)元素。02面積圖和實(shí)心圖
面積圖實(shí)心圖面積圖和實(shí)心圖
1.面積圖面積圖在曲線與橫軸之間填充顏色,用于繪制面積圖的函數(shù)為area,只能用于二維
繪圖。語法:area(y) %畫面積圖area(x,y)說明:y可以是向量或矩陣,如果y是向量,則繪制的曲線和plot函數(shù)相同,只是在曲線和橫軸之間填充顏色;如果y是矩陣,則將每列向量的數(shù)據(jù)構(gòu)成面積疊加起來;x是橫坐標(biāo),若x省略則橫坐標(biāo)為1:size(y,1)。2.實(shí)心圖實(shí)心圖是將數(shù)據(jù)的起點(diǎn)和終點(diǎn)連成多邊形,并填充顏色,繪制實(shí)心圖的函數(shù)為fill。語法:fill(x,y,c) %畫實(shí)心圖說明:c為實(shí)心圖的顏色,可以用'r'、'g'、'b'、'c'、'm'、'y'、'w'和'k',或RGB三元組行向量表示,也可以省略。面積圖和實(shí)心圖
【例4.17_3】繪制面積圖和實(shí)心圖,并比較其區(qū)別。>>area(x,y) %面積圖>>fill(x,y,'r') %紅色的實(shí)心圖運(yùn)行結(jié)果如圖。
03直方圖直方圖
用于建立直方圖的函數(shù)為hist,直方圖和條形圖的形狀相似,但直方圖用于顯示數(shù)據(jù)的分布規(guī)律,并具有統(tǒng)計(jì)的功能。語法:hist(y,m) %統(tǒng)計(jì)每段的元素個(gè)數(shù)并畫出直方圖hist(y,x)說明:m是分段的個(gè)數(shù),省略時(shí)默認(rèn)為10;x是向量,用于指定每個(gè)所分?jǐn)?shù)據(jù)段的中間值;y可以是向量或矩陣,如果是矩陣則按列分段?!纠?.18】用直方圖繪制Excel文件中的溫度。Excel文件數(shù)據(jù)見圖,使用直方圖統(tǒng)計(jì)出相同溫度天數(shù),并繪制直方圖和曲線圖。>>T1=readtable('temperature.xlsx'); %讀取Excel文件數(shù)據(jù)>>n=max(T1.temperature)-min(T1.temperature)+1 %根據(jù)溫度計(jì)算直方圖分段數(shù)n=8>>subplot(2,1,1)>>hist(T1.temperature,n) %繪制直方圖>>subplot(2,1,2)>>plot(T1.date,T1.temperature) %繪制日期溫度曲線直方圖繪制結(jié)果如圖。程序分析:直方圖顯示的是每段溫度的個(gè)數(shù),先統(tǒng)計(jì)、后繪圖。如果要得出直方圖的統(tǒng)計(jì)個(gè)數(shù),可以運(yùn)行以下程序:>>m=hist(T1.temperature,n)m=2122232104餅形圖餅形圖
餅形圖用于顯示向量中的每個(gè)元素占向量元素總和的百分比,可以用pie和pie3函數(shù)分別繪制二維和三維餅形圖。語法:pie(x,explode,'label') %畫二維餅形圖pie3(x,explode,'label') %畫三維餅形圖說明:x是向量;explode是與x同長(zhǎng)度的向量,用來決定是否從餅形圖中分離對(duì)應(yīng)的一部分塊,非零元素表示該部分需要分離;'label'是用來標(biāo)注餅形圖的字符串?dāng)?shù)組?!纠?.19】繪制4個(gè)季度支出額的餅形圖。>>y=[200100250400]; %4個(gè)季度支出額>>explode=[0010];>>pie(y,explode,{'第1季度','第2季度','第3季度','第4季度'})餅形圖繪制結(jié)果如圖。05離散數(shù)據(jù)圖
離散數(shù)據(jù)圖
stem和stem3函數(shù)繪制的方法和plot函數(shù)相似,但繪制的是離散點(diǎn)的火柴桿圖;stairs函數(shù)用于繪制階梯圖;scatter函數(shù)用于繪制點(diǎn)圖,與plot函數(shù)相似,但只有數(shù)據(jù)點(diǎn)。【例4.20】使用幾種函數(shù)繪制
的離散數(shù)據(jù)圖。>>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) %畫點(diǎn)圖離散數(shù)據(jù)圖
繪制結(jié)果如圖。06對(duì)數(shù)坐標(biāo)和極坐標(biāo)圖
對(duì)數(shù)坐標(biāo)圖形極坐標(biāo)圖對(duì)數(shù)坐標(biāo)和極坐標(biāo)圖
1.對(duì)數(shù)坐標(biāo)圖形對(duì)數(shù)坐標(biāo)圖形由semilogx、semilogy和loglog函數(shù)實(shí)現(xiàn)。語法:semilogx(x,y,'參數(shù)') %繪制x為對(duì)數(shù)坐標(biāo)的曲線semilogy(x,y,'參數(shù)') %繪制y為對(duì)數(shù)坐標(biāo)的曲線loglog(x,y,'參數(shù)') %繪制x、y都為對(duì)數(shù)坐標(biāo)的曲線【例4.21_1】畫傳遞函數(shù)為
的對(duì)數(shù)幅頻特性曲線,如圖所示,橫坐標(biāo)為w,是對(duì)數(shù)坐標(biāo)。>>w=logspace(-2,3,20); %頻率w為0.01~1000>>Aw=1./(w.*sqrt((0.5*w).^2+1)); %計(jì)算幅頻>>Lw=20*log10(Aw); %計(jì)算對(duì)數(shù)幅頻>>semilogx(w,Lw)>>title('對(duì)數(shù)幅頻特性曲線')對(duì)數(shù)坐標(biāo)和極坐標(biāo)圖
2.極坐標(biāo)圖極坐標(biāo)圖由polar函數(shù)實(shí)現(xiàn)。語法:
polar(theta,radius,'參數(shù)') %繪制極坐標(biāo)圖說明:theta為相角,radius為離原點(diǎn)的距離?!纠?.21_2】用極坐標(biāo)圖表示r=2sinθ,θ在-
~
之間,如圖。>>theta=-pi:0.01:pi;>>r=2*sin(5*theta).^2;>>polar(theta,r)07等高線圖
等高線圖
使用contour和contour3函數(shù)可以直接繪制等高線圖,在本章后面4.4節(jié)三維圖形繪制中還可以使用meshc和surfc函數(shù)繪制帶有等高線的三維網(wǎng)線和曲面圖。語法:contour(Z,n) %繪制Z矩陣的等高線contour(x,y,z,n) %繪制以x和y指定x、y坐標(biāo)的等高線說明:n為等高線的條數(shù),省略時(shí)為自動(dòng)條數(shù)。
等高線圖
【例4.22】繪制peaks函數(shù)的等高線,如圖。>>[x,y,z]=peaks;>>contour(x,y,z) %畫二維等高線>>contour3(z,30) %畫30條三維等高線(a)二維等高線
(b)三維等高線08復(fù)向量圖compass函數(shù)feather函數(shù)復(fù)向量圖1.compass函數(shù)compass函數(shù)繪制的是以原點(diǎn)為起點(diǎn)的1組復(fù)向量,又稱為羅盤圖。語法:compass(u,v) %畫羅盤圖compass(z)說明:u、v分別為復(fù)向量的實(shí)部和虛部;若只有1個(gè)參數(shù)z,則相當(dāng)于compass(real(z),imag(z))。2.feather函數(shù)feather函數(shù)繪制的是起點(diǎn)為(k,0)的復(fù)向量圖,又稱為羽毛圖。語法:feather(u,v) %畫羽毛圖feather(z)復(fù)向量圖【例4.23】用羅盤圖和羽毛圖繪制復(fù)向量,如圖。
>>theta=0:0.2:2*pi;>>z=sin(theta).*exp(j*theta);>>compass(z)>>feather(z)程序分析:羽毛圖的繪制起點(diǎn)是(k,0),k從1~n,n是z向量的元素序號(hào)。第4章MATLAB計(jì)算的可視化和GUI設(shè)計(jì)——MATLAB的三維圖形繪制01繪制三維線圖函數(shù)
繪制三維線圖函數(shù)
plot3是用來繪制三維曲線的函數(shù),它的使用格式與繪制二維圖的plot函數(shù)很相似。語法:plot3(x,y,z,'s') %繪制三維曲線plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…) %繪制多條三維曲線說明:若x、y、z是同維向量,則繪制以x、y、z元素為坐標(biāo)的三維曲線;若x、y、z是同維矩陣,則繪制三維曲線的條數(shù)等于矩陣的列數(shù)。s是指定線型、色彩或數(shù)據(jù)點(diǎn)形的字符串?!纠?.24_1】三維曲線繪圖,如圖。>>x=0:0.1:20*pi;>>plot3(x,sin(x),cos(x)) %按系統(tǒng)默認(rèn)設(shè)置繪圖02繪制三維網(wǎng)線圖和曲面圖
meshgrid函數(shù)三維網(wǎng)線圖三維曲面圖其他立體網(wǎng)線圖和曲面圖繪制三維網(wǎng)線圖和曲面圖
1.meshgrid函數(shù)meshgrid函數(shù)以x、y向量為基準(zhǔn),產(chǎn)生在x
y平面的各柵格點(diǎn)坐標(biāo)值的矩陣。語法:[X,Y]=meshgrid(x,y)說明:X、Y是柵格點(diǎn)的坐標(biāo),為矩陣;x、y為向量。例如,將x(1
m)向量和y(1
n)向量轉(zhuǎn)換為n
m的矩陣:>>x=[1234];>>y=[567];>>[xx,yy]=meshgrid(x,y)xx=123412341234yy=555566667777繪制三維網(wǎng)線圖和曲面圖
2.三維網(wǎng)線圖語法:mesh(z) %畫三維網(wǎng)線圖mesh(x,y,z,c)說明:若只有參數(shù)z,則以z矩陣的行下標(biāo)作為x坐標(biāo)軸,以z的列下標(biāo)作為y坐標(biāo)軸;x、y分別為x、y坐標(biāo)軸的自變量;當(dāng)有x、y、z參數(shù)時(shí),c是指定各點(diǎn)的用色矩陣,當(dāng)c省略時(shí)默認(rèn)用色矩陣是z的數(shù)據(jù)。如果x、y、z、c4個(gè)參數(shù)都存在,則這4個(gè)參數(shù)應(yīng)都是維數(shù)相同的矩陣。【例4.24_2】用mesh查看peaks函數(shù)的三維網(wǎng)線圖,如圖。>>[xx,yy,zz]=peaks;>>mesh(xx,yy,zz)繪制三維網(wǎng)線圖和曲面圖
3.三維曲面圖語法:surf(z) %畫三維曲面圖surf(x,y,z,c)說明:參數(shù)設(shè)置與mesh函數(shù)相同,c也可以省略。
【例4.24_3】用surf查看peaks函數(shù)的三維曲面圖,如圖。>>surf(xx,yy,zz)繪制三維網(wǎng)線圖和曲面圖
4.其他立體網(wǎng)線圖和曲面圖立體網(wǎng)線圖mesh函數(shù)還有幾種格式,如meshc函數(shù)為立體網(wǎng)狀圖加等高線;meshz函數(shù)為立體網(wǎng)狀圖加“圍裙”。【例4.24_4】用meshz和meshc觀察peaks函數(shù)的三維曲面圖,如圖。>>meshz(xx,yy,zz)>>meshc(xx,yy,zz)
03立體圖形與圖軸的控制
網(wǎng)格的隱藏改變視角曲面的鏤空立體圖形與圖軸的控制
1.網(wǎng)格的隱藏默認(rèn)方式下,MATLAB在繪制圖形時(shí)前面的圖形會(huì)遮蓋后面的圖形,即后面的網(wǎng)格會(huì)隱藏。如果要使被遮蓋的網(wǎng)格也能呈現(xiàn)出來,可用“hiddenoff”命令,隱藏則使用“hiddenon”命令。2.改變視角立體圖形的觀測(cè)角度是由方位角和俯仰角決定的,與x平面所成的夾角稱為方位角(Azimuth),與z平面所成的夾角稱為俯仰角(Elevation)。繪制二維圖形時(shí),系統(tǒng)默認(rèn)方位角
0°,俯仰角
90°;繪制三維圖形時(shí),系統(tǒng)默認(rèn)方位角
37.5°,俯仰角=30°。若對(duì)三維圖形的觀測(cè)角度不同,則顯示也不同,如果要改變觀測(cè)角度,可用view函數(shù)。語法:view([az,el]) %通過方位角和俯仰角改變視角view([vx,vy,vz]) %通過直角坐標(biāo)改變視角說明:az表示方位角;el表示俯仰角;vx、vy和vz表示直角坐標(biāo)。立體圖形與圖軸的控制
【例4.25_1】顯示peaks函數(shù)的網(wǎng)線,并改變?cè)摵瘮?shù)的視角。>>[x,y,z]=peaks; %peaks函數(shù)>>mesh(x,y,z) %繪制曲面圖>>hiddenoff %顯示網(wǎng)格>>view(0,0)>>view(0,90)>>view(-37.5,30) %恢復(fù)原視角程序分析:視角為(0,0),得到1個(gè)(x,z)的二維圖形效果;視角為(0,90),得到1個(gè)(x,y)的二維圖形效果。立體圖形與圖軸的控制
運(yùn)行效果如圖。
立體圖形與圖軸的控制
3.曲面的鏤空在MATLAB中可以在希望鏤空的位置用nan取代矩陣在該部分的數(shù)值,所有的MATLAB作圖函數(shù)都會(huì)忽略nan數(shù)據(jù)點(diǎn),實(shí)現(xiàn)“鏤空”效果。【例4.25_2】對(duì)peaks函數(shù)曲面實(shí)現(xiàn)鏤空效果,如圖。>>z(10:20,10:20)=nan; %將一部分?jǐn)?shù)值用nan替換>>surf(x,y,z) %畫曲面圖04色彩的控制色圖(colormap)色圖的顯示和處理色彩的控制1.色圖(colormap)(1)RGB三元組RGB三元行數(shù)組表示1種色彩,數(shù)組元素R、G、B的值在0~1之間,分別表示紅、綠、藍(lán)基色的相對(duì)亮度。通過三色的設(shè)置可以調(diào)制出不同顏色,如表。顏
色RGB成分Red(紅色)Green(綠色)Blue(藍(lán)色)Black(黑)000White(白)111Red(紅)100Green(綠)010Blue(藍(lán))001Yellow(黃)110Magenta(品紅)101Cyan(青)011Gray(灰)0.50.50.5DarkRed(暗紅)0.500Copper(銅色)10.620.4Aquamarine(碧綠)0.4910.83色彩的控制(2)預(yù)定義色圖函數(shù)MATLAB系統(tǒng)提供了現(xiàn)成的可以預(yù)定義色圖的函數(shù),如表所示為預(yù)定義色圖的函數(shù)表。命
令說
明hsvHSV的顏色對(duì)照表(默認(rèn)值),以紅色開始和結(jié)束hot代表暖色對(duì)照表,黑、紅、黃、白濃淡色cool代表冷色對(duì)照表,青、品紅濃淡色summer代表夏天色對(duì)照表,綠、黃濃淡色gray代表灰色對(duì)照表,灰色線性濃淡色copper代表銅色對(duì)照表,銅色線性濃淡色autumn代表秋天色對(duì)照表,紅、黃濃淡色winter代表冬天色對(duì)照表,藍(lán)、綠濃淡色spring代表春天色對(duì)照表,青、黃濃淡色bone代表“X光片”的顏色對(duì)照表pink代表粉紅色對(duì)照表,粉紅色線性濃淡色flag代表“旗幟”的顏色對(duì)照表,紅、白、藍(lán)、黑交錯(cuò)色jetHSV的變形,以藍(lán)色開始和結(jié)束prim代表三棱鏡對(duì)照表,紅、橘黃、黃、綠、藍(lán)交錯(cuò)色色彩的控制【例4.25_3】查看暖色色圖。>>colormaphot(8) %產(chǎn)生暖色peaks函數(shù)曲面>>colormapans=0.3333000.6667001.0000001.00000.333301.00000.666701.00001.000001.00001.00000.50001.00001.00001.0000色彩的控制2.色圖的顯示和處理(1)可以利用“colorbar”命令顯示色圖“colorbar”命令以不同顏色代表曲面的高度,并顯示1個(gè)水平或垂直的顏色標(biāo)尺。【例4.26】用“colorbar”命令顯示色圖,如圖。>>peaks;z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...-1/3*exp(-(x+1).^2-y.^2)>>colormapcool %產(chǎn)生冷色peaks函數(shù)曲面>>colorbar %顯示顏色標(biāo)尺色彩的控制(2)濃淡處理命令“shading”在前面的例子中,每一個(gè)曲面都可以視作由一塊塊的四方小片拼成,而且每一小片表面的顏色是均勻一致的,其顏色值由小片所在的曲面高度決定。如果要使小片表面的顏色產(chǎn)生連續(xù)性的變化,則可使用“shading”命令?!皊hading”命令的用法如表。命
令功
能shadinginterp使小片根據(jù)4個(gè)頂點(diǎn)的顏色產(chǎn)生連續(xù)的變化,或根據(jù)網(wǎng)線的線段兩端產(chǎn)生連續(xù)的變化,這種方式著色細(xì)膩但最費(fèi)時(shí)shadingflat小片或整段網(wǎng)線的顏色是一種顏色shadingfaceted在flat著色的基礎(chǔ)上,同時(shí)在小片交接的邊勾畫黑色,這種方式立體表現(xiàn)力最強(qiáng)(默認(rèn)方式)色彩的控制【例4.27】使用“shading”命令的interp和faceted方式進(jìn)行濃淡處理的peaks函數(shù)曲面圖,如圖。色彩的控制>>subplot(1,2,1)>>peaks;z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...-1/3*exp(-(x+1).^2-y.^2)>>shadinginterp>>subplot(1,2,2)>>peaks;z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...-1/3*exp(-(x+1).^2-y.^2)>>shadingfaceted色彩的控制(3)亮度處理函數(shù)brighten可以用brighten函數(shù)使色圖變亮或變暗。語法:brighten(a)說明:當(dāng)0≤a≤1時(shí),色圖加亮;當(dāng)
1≤a<0時(shí),色圖變暗。第4章MATLAB計(jì)算的可視化和GUI設(shè)計(jì)——圖形繪制工具01圖
窗圖
窗在MATLAB的命令行窗口中輸入“plottools”,就可以打開圖窗,如圖所示。在圖中左側(cè)“新子圖”面板上可以增加子圖窗;“變量”面板顯示工作區(qū)的所有變量,雙擊該變量則可以在子圖窗中顯示圖形;“注釋”面板可以用來在圖中添加線、箭頭等。圖
窗當(dāng)選擇圖形中的坐標(biāo)軸時(shí),就會(huì)出現(xiàn)如圖所示的坐標(biāo)軸屬性面板,可用于設(shè)置標(biāo)題、坐標(biāo)刻度和坐標(biāo)軸標(biāo)簽等。當(dāng)選擇圖形中的曲線時(shí),就出現(xiàn)如圖所示的線型屬性面板,可用于設(shè)置線型、曲線類型和曲線點(diǎn)等。02圖形文件轉(zhuǎn)儲(chǔ)
圖形文件轉(zhuǎn)儲(chǔ)
在MATLAB圖窗中選擇菜單“文件”→“導(dǎo)出設(shè)置…”命令,出現(xiàn)如圖所示的導(dǎo)出設(shè)置窗口,在其中設(shè)置圖形的屬性及導(dǎo)出樣式,設(shè)置完成單擊右側(cè)列中的“導(dǎo)出...”按鈕。圖形文件轉(zhuǎn)儲(chǔ)
在出現(xiàn)的“另存為”對(duì)話框中的“保存類型”欄選擇需要轉(zhuǎn)儲(chǔ)的圖形文件類型以完成圖形文件的轉(zhuǎn)儲(chǔ),如圖。第4章MATLAB計(jì)算的可視化和GUI設(shè)計(jì)——對(duì)
話
框?qū)?/p>
話
框1.輸入?yún)?shù)對(duì)話框使用inputdlg函數(shù)創(chuàng)建輸入?yún)?shù)對(duì)話框,該對(duì)話框?yàn)橛脩籼峁┝溯斎胄畔⒌慕缑?。“輸入?yún)?shù)”對(duì)話框中有2個(gè)按鈕,分別為“確定”和“取消”。語法:answer=inputdlg(prompt,title,lineno,defans,adopts)%創(chuàng)建“輸入?yún)?shù)”對(duì)話框說明:answer返回用戶的輸入信息,為元胞數(shù)組;prompt為提示信息字符串,用引號(hào)括起來,為元胞數(shù)組;title為標(biāo)題字符串,用引號(hào)括起來,可以省略;lineno用于指定輸入值的行數(shù),可以省略;defans為輸入項(xiàng)的默認(rèn)值,用引號(hào)括起來,是元胞數(shù)組,可以省略;addopts指定對(duì)話框是否可以改變大小,可取值為on或off,省略時(shí)值為off表示不能改變大小。對(duì)
話
框【例4.28_1】利用“輸入?yún)?shù)”對(duì)話框輸入二階系統(tǒng)的系數(shù),如圖。>>prompt={'請(qǐng)輸入阻尼系數(shù)','請(qǐng)輸入無阻尼振蕩頻率'};>>defans={'0.707','1'};>>p=inputdlg(prompt,'輸入?yún)?shù)',1,defans)對(duì)
話
框2.輸出信息對(duì)話框MATLAB提供了幾種專用的對(duì)話框,用于顯示不同的輸出信息。(1)消息框函數(shù)msgbox消息框是用來顯示輸出信息的,有1個(gè)“確定”按鈕。語法:msgbox(message,title,icon,icondata,iconcmap,CreateMode)%創(chuàng)建消息框說明:message為顯示的信息,可以是字符串或數(shù)組;title為標(biāo)題,是字符串,可省略;icon為顯示的圖標(biāo),可取值為“none”(無圖標(biāo))、“error”(出錯(cuò)圖標(biāo))、“help”(幫助圖標(biāo))、“warn”(警告圖標(biāo))或“custom”(自定義圖標(biāo)),也可省略。對(duì)
話
框【例4.28_2】使用消息框顯示當(dāng)阻尼系數(shù)大于1時(shí)的警告信息,如圖。>>msgbox('阻尼系數(shù)輸入范圍出錯(cuò)','警告','warn')對(duì)
話
框(2)其他輸出對(duì)話框函數(shù)MATLAB還提供了其他專門的對(duì)話框函數(shù),包括警告對(duì)話框、錯(cuò)誤提示對(duì)話框、幫助對(duì)話框和提問對(duì)話框,如表所示列出了這些對(duì)話框函數(shù)的語法、例句和顯示效果。警告對(duì)話框函數(shù)warndlg錯(cuò)誤提示對(duì)話框函數(shù)errordlg幫助對(duì)話框函數(shù)helpdlg提問對(duì)話框函數(shù)questdlgWarndlg(WarnString,DlgName,CreateMode)errordlg(ErrorString,DlgName,CreateMode)helpdlg(HelpString,DlgName)questdlg(Question,Title,Btn1,Btn2,Btn3,DEFAULT)warndlg('阻尼系數(shù)輸入范圍出錯(cuò)','警告')errordlg('阻尼系數(shù)輸入出錯(cuò)','出錯(cuò)')helpdlg('欠阻尼系數(shù)應(yīng)大于0小于1','幫助')questdlg('是否確認(rèn)?','Areyousure?','Yes','No','Yes')對(duì)
話
框3.文件管理對(duì)話框(1)“打開文件”對(duì)話框函數(shù)uigetfileuigetfile函數(shù)用于提供“打開文件”對(duì)話框,可以選擇文件類型和路徑。語法:[FileName,PathName]=uigetfile(FiltrEspec,Title,x,y)說明:FileName和PathName分別為返回的文件名和路徑,可省略,如果單擊“取消”按鈕或發(fā)生錯(cuò)誤,則命令都返回0;FiltrEspec指定初始時(shí)顯示的文件名,可以用通配符“*”表示,若省略則自動(dòng)列出當(dāng)前路徑下的所有“*.m”文件和目錄;Title為對(duì)話框標(biāo)題,可省略;x、y分別指定對(duì)話框在屏幕上的位置(到屏幕左上角的距離),單位是像素,可省略。對(duì)
話
框【例4.29_1】利用“打開文件”對(duì)話框選擇MATLAB目錄下的文件“l(fā)icense_agreement.txt”,如圖。>>[fname,pname]=uigetfile('*.*','打開文件',100,100)fname='license_agreement.txt'pname='C:\ProgramFiles\Polyspace\R2021a\'對(duì)
話
框(2)“保存文件”對(duì)話框函數(shù)uiputfileuiputfile函數(shù)用于提供“保存文件”對(duì)話框,可以選擇文件類型和路徑。語法:[FileName,PathName]=uiputfile(FiltrEspec,Title,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年跨國(guó)貿(mào)易出口銷售合同中英版版B版
- 2024年資產(chǎn)交易過戶保障合同3篇
- 2025版智能家居系統(tǒng)安裝安全責(zé)任合同3篇
- 2024年食品安全檢測(cè)技術(shù)服務(wù)合同
- 2024指定供應(yīng)商閉口式購(gòu)銷協(xié)議版B版
- 2024年金融行業(yè)員工試用期勞動(dòng)合同范本3篇
- 保定電力職業(yè)技術(shù)學(xué)院《生物化學(xué)(上)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版酒吧店長(zhǎng)任期突發(fā)事件應(yīng)急預(yù)案與應(yīng)急演練合同范本3篇
- 2025版社保繳納與公積金繳存同步監(jiān)管協(xié)議3篇
- 包頭鐵道職業(yè)技術(shù)學(xué)院《化工過程開發(fā)與設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 全國(guó)自考社會(huì)經(jīng)濟(jì)調(diào)查方法與應(yīng)用真題
- 中醫(yī)婦科疾病的治療(完美版)課件
- 箱式變電站設(shè)備維護(hù)保養(yǎng)方案
- 機(jī)械設(shè)計(jì)Ⅰ學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 英語演講技巧與實(shí)訓(xùn)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 智慧水產(chǎn)養(yǎng)殖解決方案10.9
- 《預(yù)防未成年人犯罪》課件(圖文)
- 2024-2030年全球及中國(guó)環(huán)境健康與安全(EHS)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 材料工程管理人員個(gè)人年終工作總結(jié)范文
- 黑龍江金融服務(wù)支持中俄貿(mào)易的現(xiàn)狀、不足和展望
- 福建省公路水運(yùn)工程試驗(yàn)檢測(cè)費(fèi)用參考指標(biāo)
評(píng)論
0/150
提交評(píng)論