MATLAB作圖教程全.ppt_第1頁
MATLAB作圖教程全.ppt_第2頁
MATLAB作圖教程全.ppt_第3頁
MATLAB作圖教程全.ppt_第4頁
MATLAB作圖教程全.ppt_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、后勤工程學(xué)院數(shù)學(xué)教研室,數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn),數(shù)學(xué)與信息科學(xué)學(xué)院,MATLAB作圖,Matlab作圖,二維圖形,三維圖形,圖形處理,實(shí)例,作業(yè),特殊二、三維圖形,Matlab作圖是通過描點(diǎn)、連線來實(shí)現(xiàn)的,故在畫一個曲線圖形之前,必須先取得該圖形上的一系列的點(diǎn)的坐標(biāo)(即橫坐標(biāo)和縱坐標(biāo)),然后將該點(diǎn)集的坐標(biāo)傳給Matlab函數(shù)畫圖.,命令為: plot(x,y,s),plot(x,y)-畫實(shí)線 plot(x,y1,s1,x,y2,s2,x,yn,sn) -將多條線畫在一起,X,Y是向量,分別表示點(diǎn)集的橫坐標(biāo)和縱坐標(biāo),線型、顏色、點(diǎn)形,1.曲線圖,例 在0,2*pi用紅線畫sin(x),用綠圈畫cos

2、(x).,x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,r,x,z,g0),解,Matlab liti1,圖形標(biāo)記 在繪制圖形的同時,可以對圖形加上一些說明,如圖形名稱、圖形某一部分的含義、坐標(biāo)說明等,將這些操作稱為添加圖形標(biāo)記。 title(加圖形標(biāo)題); xlabel(加X軸標(biāo)記); ylabel(加Y軸標(biāo)記); text(X,Y,添加文本); grid on 加網(wǎng)格線 text(x,y,string) adds the string in quotes(引號) to the location specified by the po

3、int (x,y). bullet pi rightarrow 右箭頭 EdgeColor - Color of the rectangles edge (none by default). EdgeColor ,red,設(shè)定坐標(biāo)軸 用戶若對坐標(biāo)系統(tǒng)不滿意,可利用axis命令對其重新設(shè)定。 axis(xmin xmax ymin ymax) 設(shè)定最大和最小值 axis (auto) 將坐標(biāo)系統(tǒng)返回到自動缺省狀態(tài) axis (square) 將當(dāng)前圖形設(shè)置為方形 axis (equal) 兩個坐標(biāo)因子設(shè)成相等 axis (off) 關(guān)閉坐標(biāo)系統(tǒng) axis (on) 顯示坐標(biāo)系統(tǒng),在坐標(biāo)范圍0X2

4、,-2Y2內(nèi)重新繪制正弦曲線,其程序?yàn)椋?x=linspace(0,2*pi,60);生成含有60個數(shù)據(jù)元素的向量X y=sin(x); plot(x,y); axis (0 2*pi -2 2);設(shè)定坐標(biāo)軸范圍,加圖例 給圖形加圖例命令為legend。該命令把圖例放置在圖形空白處,用戶還可以通過鼠標(biāo)移動圖例,將其放到希望的位置。 格式:legend(圖例說明,圖例說明);,為正弦、余弦曲線增加圖例,其程序?yàn)椋?x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2, -); legend(sin(x),cos(x);,Matlab aaa,

5、2.符號函數(shù)(顯函數(shù)、隱函數(shù)和參數(shù)方程)畫圖,(1) ezplot,ezplot(x(t),y(t),tmin,tmax) 表示在區(qū)間tminttmax繪制參數(shù)方程 x=x(t),y=y(t)的函數(shù)圖,ezplot(f(x),a,b) 表示在axb繪制顯函數(shù)f=f(x)的函數(shù)圖,ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在區(qū)間xminxxmax和 yminyymax繪制 隱函數(shù)f(x,y)=0的函數(shù)圖,例 在0,pi上畫y=cos(x)的圖形,解 輸入命令 ezplot(sin(x),0,pi),Matlab liti25,解 輸入命令 ezplot(cos(t

6、)3,sin(t)3,0,2*pi),Matlab liti41,解 輸入命令 ezplot(exp(x)+sin(x*y),-2,0.5,0,2),Matlab liti40,(2) fplot,注意: 1 fun必須是M文件的函數(shù)名或是獨(dú)立變量為x的字符串. 2 fplot函數(shù)不能畫參數(shù)方程和隱函數(shù)圖形,但在一個圖上可以畫多個圖形。,fplot(fun,lims) 表示繪制字符串fun指定的函數(shù)在lims=xmin,xmax的圖形.或 lims=xmin,xmax, ymin,ymax,解 先建M文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin

7、(3*x.2),再輸入命令: fplot(myfun1,-1,2),Matlab liti43,Matlab liti28,解 輸入命令: fplot(tanh(x),sin(x),cos(x),2*pi*-1 1 1 1),例 在-2,2范圍內(nèi)繪制函數(shù)tanh的圖形 解 fplot(tanh,-2,2),Matlab liti42,subplot(m,n,p) 該命令將當(dāng)前圖形窗口分成mn個繪圖區(qū),即每行n個,共m行,區(qū)號按行優(yōu)先編號,且選定第p個區(qū)為當(dāng)前活動區(qū)。, subplot函數(shù),例 在一個圖形窗口中同時繪制正弦、余弦、正切、余切曲線,程序?yàn)椋?x=linspace(0,2*pi,60

8、); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); eps為系統(tǒng)內(nèi)部常數(shù) ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成22區(qū)域且指定1號為活動區(qū) plot(x,y); title(sin(x); axis (0 2*pi -1 1); subplot(2,2,2);,plot(x,z); title(cos(x); axis (0 2*pi -1 1); subplot(2,2,3); plot(x,t); title(tangent(x); axis (0 2*pi -40 40); subplot(2,2,

9、4); plot(x,ct); title(cotangent(x); axis (0 2*pi -40 40);,4. 對數(shù)坐標(biāo)圖,在很多工程問題中,通過對數(shù)據(jù)進(jìn)行對數(shù)轉(zhuǎn)換可以更清晰地看出數(shù)據(jù)的某些特征,在對數(shù)坐標(biāo)系中描繪數(shù)據(jù)點(diǎn)的曲線,可以直接地表現(xiàn)對數(shù)轉(zhuǎn)換.對數(shù)轉(zhuǎn)換有雙對數(shù)坐標(biāo)轉(zhuǎn)換和單軸對數(shù)坐標(biāo)轉(zhuǎn)換兩種.用loglog函數(shù)可以實(shí)現(xiàn)雙對數(shù)坐標(biāo)轉(zhuǎn)換,用semilogx和semilogy函數(shù)可以實(shí)現(xiàn)單軸對數(shù)坐標(biāo)轉(zhuǎn)換.,loglog(Y) 表示 x、y坐標(biāo)都是對數(shù)坐標(biāo)系 semilogx(Y) 表示 x坐標(biāo)軸是對數(shù)坐標(biāo)系 semilogy() 表示y坐標(biāo)軸是對數(shù)坐標(biāo)系 plotyy 有兩個y坐標(biāo)軸

10、,一個在左邊,一個在右邊,例 用方形標(biāo)記創(chuàng)建一個簡單的loglog,解 輸入命令: x=logspace(-1,2); loglog(x,exp(x),-s) grid on %標(biāo)注格柵,Matlab liti37,例 創(chuàng)建一個簡單的半對數(shù)坐標(biāo)圖 解 輸入命令: x=0:.1:10; semilogy(x,10.x),Matlab liti38,例 繪制y=x3的函數(shù)圖、對數(shù)坐標(biāo)圖、半對數(shù)坐標(biāo)圖,Matlab liti22,返回,6 其它圖形函數(shù),除plot等基本繪圖命令外,Matlab系統(tǒng)提供了許多其它特殊繪圖函數(shù),這里舉一些代表性例子,更詳細(xì)的信息用戶可隨時查閱在線幫助,其對應(yīng)的M-fil

11、e文件存放在系統(tǒng)matlabtoolboxmatlab目錄下。,6.1階梯圖形 函數(shù)stairs(x,y)可以繪制階梯圖形,如下列程序段: x=-2.5:0.25:2.5; y=exp(-x.*x); stairs(x,y); 繪制階梯圖形命令 title(stairs plot);,6.2 條形圖形 函數(shù)bar(x,y)可以繪制條形圖形,如下列程序段將繪制條形圖形 x=-2.5:0.25:2.5; y=exp(-x.*x); bar(x,y); 繪制條形圖命令,6.3 填充圖形 fill(x,y,c)函數(shù)用來繪制并填充二維多邊圖形,x和y為二維多邊形頂點(diǎn)坐標(biāo)向量。字符 c 規(guī)定填充顏色,其取

12、值前已敘述。 下述程序段繪制一正方形并以黃色填充:,x=0 1 1 0 0; 正方形頂點(diǎn)坐標(biāo)向量 y=0 0 1 1 0; fill(x,y,y);繪制并以黃色填充正方形圖 再如: x=0:0.025:2*pi; y=sin(3*x); fill(x,y,0.5 0.3 0.4); 顏色向量 Matlab系統(tǒng)可用向量表示顏色,通常稱其為顏色向量?;绢伾蛄坑胷 g b表示,即RGB顏色組合;以RGB為基本色,通過 r,g,b在01范圍內(nèi)的不同取值可以組合出各種顏色。,二維繪圖函數(shù)小結(jié),plot 二維圖形基本函數(shù) fplot f(x)函數(shù)曲線繪制 fill 填充二維多邊圖形 polar 極坐標(biāo)

13、圖 bar 條形圖 loglog 雙對數(shù)坐標(biāo)圖 semilogx X軸為對數(shù)的坐標(biāo)圖 semilogy Y軸為對數(shù)的坐標(biāo)圖 stairs 階梯形圖 axis 設(shè)置坐標(biāo)軸 clf 清除圖形窗口內(nèi)容 close 關(guān)閉圖形窗口,ezplot 符號函數(shù) figure 創(chuàng)建圖形窗口 grid 放置坐標(biāo)網(wǎng)格線 gtext 用鼠標(biāo)放置文本 hold 保持當(dāng)前圖形窗口內(nèi)容 subplot 創(chuàng)建子圖 text 放置文本 title 放置圖形標(biāo)題 xlabel 放置X軸坐標(biāo)標(biāo)記 ylabel 放置Y軸坐標(biāo)標(biāo)記 Subplot 多子圖,三維圖形,1、空間曲線,2、空間曲面,返回,plot3(x,y,z,s),空 間

14、 曲 線,1、 一條曲線,例 在區(qū)間0,10*pi畫出參數(shù)曲線x=sin(t),y=cos(t), z=t.,Matlab liti8,解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋轉(zhuǎn),plot3(x,y,z),2、多條曲線,例 畫多條曲線觀察函數(shù)Z=(X+Y).2.,(這里meshgrid(x,y)的作用是產(chǎn)生一個以向量x為行、向量y為列的矩陣),Matlab liti9,其中x,y,z都是m*n矩陣,其對應(yīng)的每一列表示一條曲線.,解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).

15、2; plot3(X,Y,Z),返回,函數(shù)格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,) 其中x1,y1,z1表示三維坐標(biāo)向量,c1,c2表示線形或顏色。 函數(shù)功能:以向量x,y,z為坐標(biāo),繪制三維曲線。,2、多條曲線,例 繪制三維螺旋曲線,其程序?yàn)椋?t=0:pi/50:10*pi; y1=sin(t),y2=cos(t); plot3(y1,y2,t); title(helix),text(0,0,0,origin); xlabel(sin(t),ylabel(cos(t),zlabel(t); gridon;,空 間 曲 面,例 畫函數(shù)Z=(X+Y).2的圖形. 解

16、 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) shading flat %將當(dāng)前圖形變得平滑,Matlab liti11,(1) surf(x,y,z),畫出數(shù)據(jù)點(diǎn)(x,y,z)表示的曲面,(2) Mesh(x,y,z),解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z),Matlab liti24,例 畫出曲面Z=(X+Y).2在不同視角的網(wǎng)格圖.,畫網(wǎng)格曲面,mesh函數(shù)用于繪制三維網(wǎng)格圖。在不需要繪制特別精細(xì)的三維曲面結(jié)構(gòu)

17、圖時,可以通過繪制三維網(wǎng)格圖來表示三維曲面。三維曲面的網(wǎng)格圖最突出的優(yōu)點(diǎn)是:它較好地解決了實(shí)驗(yàn)數(shù)據(jù)在三維空間的可視化問題。,在圖形上加格柵、圖例和標(biāo)注,定制坐標(biāo),圖形保持,分割窗口,縮放圖形,改變視角,圖形處理,返回,動 畫,1、在圖形上加格柵、圖例和標(biāo)注,(1)grid on: 加格柵在當(dāng)前圖上 grid off: 刪除格柵,處理圖形,(2)hh = xlabel(string): 在當(dāng)前圖形的x軸上加圖例string,hh = ylabel(string): 在當(dāng)前圖形的y軸上加圖例string,hh = title(string): 在當(dāng)前圖形的頂端上加圖例string,hh = zla

18、bel(string): 在當(dāng)前圖形的z軸上加圖例string,例 在區(qū)間0,2*pi畫sin(x)的圖形,并加注圖例“自變量 X”、“函數(shù)Y”、“示意圖”, 并加格柵.,解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自變量X) ylabel(函數(shù)Y) title(示意圖) grid on,Matlab liti2,(3) hh = gtext(string),命令gtext(string)用鼠標(biāo)放置標(biāo)注在現(xiàn)有的圖上. 運(yùn)行命令gtext(string)時,屏幕上出現(xiàn)當(dāng)前圖形,在 圖形上出現(xiàn)一個交叉的十字,該十字隨鼠標(biāo)的移動移動, 當(dāng)按

19、下鼠標(biāo)左鍵時,該標(biāo)注string放在當(dāng)前十交叉的位 置.,例 在區(qū)間0,2*pi畫sin(x),并分別標(biāo)注“sin(x)” ”cos(x)”.,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x),Matlab liti3,返回,2、定制坐標(biāo),axis(xmin xmax ymin ymax zmin zmax),例 在區(qū)間0.005,0.01顯示sin(1/x)的圖形。,解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y)

20、 axis(0.005 0.01 1 1),Matlab liti4,返回,定制圖形坐標(biāo),將坐標(biāo)軸返回到自動缺省值,axis auto,3、圖形保持,(1) hold on hold of,例 將y=sin(x)、y=cos(x)分別用點(diǎn)和線畫出在同一屏幕上。,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,:) hold on Plot(x,y),Matlab liti5,保持當(dāng)前圖形, 以便繼續(xù)畫圖到當(dāng)前圖上,釋放當(dāng)前圖形窗口,(2) figure(h),例 區(qū)間0,2*pi新建兩個窗口分別畫出y=sin(x); z=cos(x)。

21、,解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause figure(2); plot(x,z); title(cos(x);,Matlab liti6,返回,新建h窗口,激活圖形使其可見,并把它置于其它圖形之上,4、分割窗口,h=subplot(mrows,ncols,thisplot),劃分整個作圖區(qū)域?yàn)閙rows*ncols塊(逐行對塊訪問)并激活第thisplot塊,其后的作圖語句將圖形畫在該塊上。,激活已劃分為mrows*ncols塊的屏幕中的第thisplot塊,其后的作圖語句將圖形畫

22、在該塊上。,命令Subplot(1,1,1)返回非分割狀態(tài)。,subplot(mrows,ncols,thisplot),subplot(1,1,1),解x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(sin(x) subplot(2,2,2);plot(x,z),title(cos(x) subplot(2,2,3);plot(x,a),title(sin(x)cos(x) subplot(2,2,4);plot

23、(x,b),title(sin(x)/cos(x),例 將屏幕分割為四塊,并分別畫出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。,Matlab liti7,返回,5、縮放圖形,zoom on,單擊鼠標(biāo)左鍵,則在當(dāng)前圖形窗口中,以鼠標(biāo)點(diǎn)中的點(diǎn)為中心的圖形放大2倍;單擊鼠標(biāo)右鍵,則縮小2倍,解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on,Matlab liti13,例 縮放y=sin(x)的圖形,zoom off,為當(dāng)前圖形打開縮放模式,關(guān)閉縮放模式,返回,6. 改變視角view,(1

24、)view(a,b) 命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。,解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; subplot(2,2,1), mesh(X,Y,Z) subplot(2,2,2), mesh(X,Y,Z),view(50,-34) subplot(2,2,3), mesh(X,Y,Z),view(-60,70) subplot(2,2,4), mesh(X,Y,Z),view(0,1,1),Matlab liti10,例 畫出曲面Z=(X+Y).2在不同視角

25、的網(wǎng)格圖.,view用空間矢量表示的,三個量只關(guān)心它們的比例,與數(shù)值的大小無關(guān),x軸view(1,0,0),y軸view(0,1,0),z軸view(0,0,1)。,(2)view(x,y,z),返回,7 動畫設(shè)計,如果將Matlab產(chǎn)生的多幅圖形保存起來,并利用系統(tǒng)提供的函數(shù)進(jìn)行播放,就可產(chǎn)生動畫效果。系統(tǒng)所提供的動畫功能函數(shù)有g(shù)etframe、moviein和movie。,getframe函數(shù) getframe函數(shù)可將當(dāng)前圖形窗口作為一個畫面取下并保存,格式為:m=getframe它將每一幀畫面信息數(shù)據(jù)截取下來整理成列向量。該函數(shù)截取圖形的點(diǎn)陣信息,圖形窗口的大小,對數(shù)據(jù)向量的大小影響較大

26、,窗口越大,所需存儲容量越大。而圖形的復(fù)雜性對數(shù)據(jù)容量要求沒有直接的關(guān)系。,moviein函數(shù) 函數(shù)m=moviein(n)用來建立一個足夠大的n列的矩陣m,用來保存n幅畫面的數(shù)據(jù),以備播放。 movie函數(shù) movie(m,n)以每秒n幅圖形的速度播放由矩陣m的列向量所組成的畫面。,例 播放一個不斷變化的眼球程序段。 m=moviein(20); 建立一個20個列向量組成的矩陣 for j=1:20 plot(fft(eye(j+10) 繪制出每一幅眼球圖并保存到m矩陣中 m(:,j)=getframe; end movie(m,10);以每秒不超過幀的速度播放畫面次,再如下述程序段播放一個

27、直徑不斷變化的球體。 n=30 x,y,z=sphere m=moviein(n); for j=1:n surf(i*x,i*y,i*z) m(:,j)=getframe; end movie(m,30);,Matlab liti14,返回,例 將曲面peaks做成動畫。,解 x,y,z=peaks(30); surf(x,y,z) axis(-3 3 -3 3 -10 10) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m),注:為了方便測試立體繪圖,MATLAB提供了一個peak

28、s函數(shù),可產(chǎn)生一個凹凸有致的曲面,包含了三個局部極大點(diǎn)及三個局部極小點(diǎn),其方程式為:,特殊二、三維圖形,1、特殊的二維圖形函數(shù),2、特殊的三維圖形函數(shù),返回,特殊的二維圖形函數(shù),1、極坐標(biāo)圖:polar (theta,rho,s),用角度theta(弧度表示)和極半徑rho作極坐標(biāo)圖,用s指定線型。,例,解:theta=linspace(0,2*pi), rho=sin(2*theta).*cos(2*theta); polar(theta,rho,g) title(Polar plot of sin(2*theta).*cos(2*theta);,Matlab liti15,2、 散點(diǎn)圖:

29、scatter(X,Y,S,C)%S-size C-color 在向量X和Y的指定位置顯示彩色圈X和Y必須大小相同,解 輸入命令: load seamount % seamounts are underwater mountains. scatter(x,y,5,z),Matlab liti29,3、平面等值線圖: contour (x,y,z,n) 繪制n個等值線的二維等值線圖,解 輸入命令: X,Y=meshgeid(-2:.2:2,-2:.2:3); Z=X.*exp(-X.2-Y.2); C,h=contour(X,Y,Z); clabel(C,h) %沿線標(biāo)識法 colormap c

30、ool,Matlab liti34,例 繪制seamount散點(diǎn)圖,返回,特殊的三維圖形函數(shù),1、空間等值線圖: contour 3(x,y,z,n),其中n表示等值線數(shù)。,例 山峰的三維和二維等值線圖。,解 x,y,z=peaks; subplot(1,2,1) contour3(x,y,z,16,s) grid, xlabel(x-axis),ylabel(y-axis) zlabel(z-axis) title(contour3 of peaks); subplot(1,2,2) contour(x,y,z,16,s) grid, xlabel(x-axis), ylabel(y-axis) titl

溫馨提示

  • 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

提交評論