3 MATLAB作圖教程全_第1頁
3 MATLAB作圖教程全_第2頁
3 MATLAB作圖教程全_第3頁
3 MATLAB作圖教程全_第4頁
3 MATLAB作圖教程全_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數學建模與數學實驗數學建模與數學實驗 MATLAB作圖作圖二維圖形二維圖形三維圖形三維圖形圖形處理圖形處理實例實例作業作業 Matlab作圖是通過描點、連線來實現的,故在畫一個曲線圖形之前,必須先取得該圖形上的一系列的點的坐標(即橫坐標和縱坐標),然后將該點集的坐標傳給Matlab函數畫圖. 命令為:plot(x,y,s)plot(x,y)-畫實線plot(x,y1,s1,x,y2,s2,x,yn,sn) -將多條線畫在一起X,Y是向量,分別表示點集的橫坐標和縱坐標線型、顏色、點形1.曲線圖曲線圖例 在0,2*pi用紅線畫sin(x),用綠圈畫cos(x). x=linspace(0,2*pi

2、,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,g0)解解設定坐標軸 用戶若對坐標系統不滿意,可利用axis命令對其重新設定。axis(xmin xmax ymin ymax) 設定最大和最小值axis (auto) 將坐標系統返回到自動缺省狀態axis (square) 將當前圖形設置為方形axis (equal) 兩個坐標因子設成相等axis (off) 關閉坐標系統axis (on) 顯示坐標系統 圖形標記 在繪制圖形的同時,可以對圖形加上一些說明,如圖形名稱、圖形某一部分的含義、坐標說明等,將這些操作稱為添加圖形標記。title(加圖形標題); xlabel

3、(加X軸標記); ylabel(加Y軸標記); text(X,Y,添加文本); grid on 加網格線text(x,y,string) adds the string in quotes(引號) to the location specified by the point (x,y). bullet pi rightarrow 右箭頭EdgeColor - Color of the rectangles edge (none by default).EdgeColor ,red 在坐標范圍0X2,-2Y2內重新繪制正弦曲線,其程序為:x=linspace(0,2*pi,60);生成含有60個

4、數據元素的向量Xy=sin(x);plot(x,y);axis (0 2*pi -2 2);設定坐標軸范圍 加圖例 給圖形加圖例命令為legend。該命令把圖例放置在圖形空白處,用戶還可以通過鼠標移動圖例,將其放到希望的位置。 格式:legend(圖例說明,圖例說明); 為正弦、余弦曲線增加圖例,其程序為: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2, -); legend(sin(x),cos(x);2.符號函數符號函數(顯函數、隱函數和參數方程顯函數、隱函數和參數方程)畫圖畫圖(1) ezplotezplot(x(t),y(t

5、),tmin,tmax) 表示在區間tminttmax繪制參數方程 x=x(t),y=y(t)的函數圖ezplot(f(x),a,b) 表示在axb繪制顯函數f=f(x)的函數圖ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在區間xminxxmax和 yminyymax繪制隱函數f(x,y)=0的函數圖例例 在0,pi上畫y=cos(x)的圖形解解 輸入命令 ezplot(sin(x),0,pi)解解 輸入命令 ezplot(cos(t)3,sin(t)3,0,2*pi)例例 在-2,0.5,0,2上畫隱函數0)sin(xyex的圖解解 輸入命令ezplot(exp

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

7、plot(myfun1,-1,2)例例 x、y的取值范圍都在-2,2, 畫函數 tanh(x),sin(x),cos(x)的圖形 解解 輸入命令: fplot(tanh(x),sin(x),cos(x),2*pi*-1 1 1 1)例例 在-2,2范圍內繪制函數tanh的圖形解解 fplot(tanh,-2,2) subplot(m,n,p) 該命令將當前圖形窗口分成mn個繪圖區,即每行n個,共m行,區號按行優先編號,且選定第p個區為當前活動區。 subplot函數 例 在一個圖形窗口中同時繪制正弦、余弦、正切、余切曲線,程序為:x=linspace(0,2*pi,60);y=sin(x);z

8、=cos(x);t=sin(x)./(cos(x)+eps); eps為系統內部常數ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成22區域且指定1號為活動區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,4);plot(x,ct);title(cotang

9、ent(x);axis (0 2*pi -40 40);4. 對數坐標圖對數坐標圖 在很多工程問題中,通過對數據進行對數轉換可以更清晰地看出數據的某些特征,在對數坐標系中描繪數據點的曲線,可以直接地表現對數轉換.對數轉換有雙對數坐標轉換和單軸對數坐標轉換兩種.用loglog函數可以實現雙對數坐標轉換,用semilogx和semilogy函數可以實現單軸對數坐標轉換.loglog(Y) 表示 x、y坐標都是對數坐標系semilogx(Y) 表示 x坐標軸是對數坐標系semilogy() 表示y坐標軸是對數坐標系plotyy 有兩個y坐標軸,一個在左邊,一個在右邊例例 用方形標記創建一個簡單的lo

10、glog解解 輸入命令: x=logspace(-1,2); loglog(x,exp(x),-s) grid on %標注格柵例例 創建一個簡單的半對數坐標圖解解 輸入命令: x=0:.1:10; semilogy(x,10.x)例例 繪制y=x3的函數圖、對數坐標圖、半對數坐標圖6 其它圖形函數 除plot等基本繪圖命令外,Matlab系統提供了許多其它特殊繪圖函數,這里舉一些代表性例子,更詳細的信息用戶可隨時查閱在線幫助,其對應的M-file文件存放在系統matlabtoolboxmatlab目錄下。 6.1階梯圖形 函數stairs(x,y)可以繪制階梯圖形,如下列程序段:x=-2.5

11、:0.25:2.5;y=exp(-x.*x);stairs(x,y); 繪制階梯圖形命令title(stairs plot); 6.2 條形圖形 函數bar(x,y)可以繪制條形圖形,如下列程序段將繪制條形圖形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y); 繪制條形圖命令 6.3 填充圖形fill(x,y,c)函數用來繪制并填充二維多邊圖形,x和y為二維多邊形頂點坐標向量。字符 c 規定填充顏色,其取值前已敘述。 下述程序段繪制一正方形并以黃色填充: x=0 1 1 0 0; 正方形頂點坐標向量 y=0 0 1 1 0; fill(x,y,y);繪制并以黃色填充正

12、方形圖 再如: x=0:0.025:2*pi; y=sin(3*x); fill(x,y,0.5 0.3 0.4); 顏色向量 Matlab系統可用向量表示顏色,通常稱其為顏色向量。基本顏色向量用r g b表示,即RGB顏色組合;以RGB為基本色,通過 r,g,b在01范圍內的不同取值可以組合出各種顏色。二維繪圖函數小結 plot 二維圖形基本函數 fplot f(x)函數曲線繪制 fill 填充二維多邊圖形 polar 極坐標圖 bar 條形圖 loglog 雙對數坐標圖 semilogx X軸為對數的坐標圖 semilogy Y軸為對數的坐標圖 stairs 階梯形圖 axis 設置坐標軸

13、 clf 清除圖形窗口內容 close 關閉圖形窗口ezplot 符號函數figure 創建圖形窗口grid 放置坐標網格線gtext 用鼠標放置文本hold 保持當前圖形窗口內容subplot 創建子圖text 放置文本title 放置圖形標題xlabel 放置X軸坐標標記ylabel 放置Y軸坐標標記Subplot 多子圖三維圖形三維圖形1、空間曲線空間曲線2、空間曲面空間曲面plot3(x,y,z,s) 空空 間間 曲曲 線線 1、 一條曲線一條曲線 例例 在區間0,10*pi畫出參數曲線x=sin(t),y=cos(t), z=t. 解解 t=0:pi/50:10*pi; plot3(

14、sin(t),cos(t),t) rotate3d %旋轉n維向量,分別表示曲線上點集的橫坐標、縱坐標、函數值指定顏色、線形等 plot3(x,y,z)2、多條曲線多條曲線例 畫多條曲線觀察函數Z=(X+Y).2. (這里meshgrid(x,y)的作用是產生一個以向量x為行、向量y為列的矩陣)其中x,y,z都是m*n矩陣,其對應的每一列表示一條曲線.解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z) 函數格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,) 其中x1,y1,z1表示三維坐標向量,

15、c1,c2表示線形或顏色。 函數功能:以向量x,y,z為坐標,繪制三維曲線。2、多條曲線多條曲線 例例 繪制三維螺旋曲線,其程序為: 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空 間 曲 面例 畫函數Z=(X+Y).2的圖形. 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) shading

16、flat %將當前圖形變得平滑(1) surf(x,y,z)畫出數據點(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) 例 畫出曲面Z=(X+Y).2在不同視角的網格圖. 畫網格曲面數據矩陣。分別表示數據點的橫坐標、縱坐標、函數值 mesh函數用于繪制三維網格圖。在不需要繪制特別精細的三維曲面結構圖時,可以通過繪制三維網格圖來表示三維曲面。三維曲面的網格圖最突出的優點是:它較好地解決了實驗數據在三維空間的可視

17、化問題。在圖形上加格柵、圖例和標注在圖形上加格柵、圖例和標注定制坐標定制坐標圖形保持圖形保持分割窗口分割窗口縮放圖形縮放圖形改變視角改變視角圖形處理動動 畫畫1、在圖形上加格柵、圖例和標注(1)grid on: 加格柵在當前圖上 grid offgrid off: 刪除格柵處理圖形處理圖形(2)hh = xlabel(string): 在當前圖形的x軸上加圖例stringhh = ylabel(string): 在當前圖形的y軸上加圖例stringhh = title(string): 在當前圖形的頂端上加圖例stringhh = zlabel(string): 在當前圖形的z軸上加圖例str

18、ing例例 在區間0,2*pi畫sin(x)的圖形,并加注圖例“自變量 X”、“函數Y”、“示意圖”, 并加格柵.解解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自變量X) ylabel(函數Y) title(示意圖) grid on (3) hh = gtext(string) 命令gtext(string)用鼠標放置標注在現有的圖上.運行命令gtext(string)時,屏幕上出現當前圖形,在圖形上出現一個交叉的十字,該十字隨鼠標的移動移動,當按下鼠標左鍵時,該標注string放在當前十交叉的位置. 例例 在區間0,2*pi畫sin

19、(x),并分別標注“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)2、定制坐標、定制坐標axis(xmin xmax ymin ymax zmin zmax)例例 在區間0.005,0.01顯示sin(1/x)的圖形。解解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1)定制圖形坐標將坐標軸返回到自動缺省值axis autox、y、z的最大、

20、最小值3、圖形保持、圖形保持(1) hold on hold of例例 將y=sin(x)、y=cos(x)分別用點和線畫出在同一屏幕上。解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,:) hold on Plot(x,y)保持當前圖形, 以便繼續畫圖到當前圖上釋放當前圖形窗口(2) figure(h)例例 區間0,2*pi新建兩個窗口分別畫出y=sin(x); z=cos(x)。解解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause

21、figure(2); plot(x,z); title(cos(x);新建h窗口,激活圖形使其可見,并把它置于其它圖形之上4、分割窗口、分割窗口h=subplot(mrows,ncols,thisplot) 劃分整個作圖區域為mrows*ncols塊(逐行對塊訪問)并激活第thisplot塊,其后的作圖語句將圖形畫在該塊上。 激活已劃分為mrows*ncols塊的屏幕中的第thisplot塊,其后的作圖語句將圖形畫在該塊上。命令Subplot(1,1,1)返回非分割狀態。subplot(mrows,ncols,thisplot) subplot(1,1,1) 解解x=linspace(0,2*

22、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(x,b),title(sin(x)/cos(x)例例 將屏幕分割為四塊,并分別畫出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。

23、5、縮放圖形、縮放圖形zoom on 單擊鼠標左鍵,則在當前圖形窗口中,以鼠標點中的點為中心的圖形放大2倍;單擊鼠標右鍵,則縮小2倍解解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on 例例 縮放y=sin(x)的圖形zoom off為當前圖形打開縮放模式關閉縮放模式6. 改變視角改變視角view (1)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; subpl

24、ot(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)例 畫出曲面Z=(X+Y).2在不同視角的網格圖. view用空間矢量表示的,三個量只關心它們的比例,與數值的大小無關,x軸view(1,0,0),y軸view(0,1,0),z軸view(0,0,1)。(2)view(x,y,z)7 動畫設計 如果將Matlab產生的多幅圖形保存起來,并利用系統提供的函數進行

25、播放,就可產生動畫效果。系統所提供的動畫功能函數有getframe、moviein和movie。 getframe函數 getframe函數可將當前圖形窗口作為一個畫面取下并保存,格式為:m=getframe它將每一幀畫面信息數據截取下來整理成列向量。該函數截取圖形的點陣信息,圖形窗口的大小,對數據向量的大小影響較大,窗口越大,所需存儲容量越大。而圖形的復雜性對數據容量要求沒有直接的關系。 moviein函數 函數m=moviein(n)用來建立一個足夠大的n列的矩陣m,用來保存n幅畫面的數據,以備播放。 movie函數 movie(m,n)以每秒n幅圖形的速度播放由矩陣m的列向量所組成的畫面

26、。 例例 播放一個不斷變化的眼球程序段。 m=moviein(20); 建立一個20個列向量組成的矩陣 for j=1:20 plot(fft(eye(j+10) 繪制出每一幅眼球圖并保存到m矩陣中 m(:,j)=getframe; end movie(m,10);以每秒不超過幀的速度播放畫面次 再如下述程序段播放一個直徑不斷變化的球體。 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); 例 將曲面peaks做成動畫。 解 x,y,z=peaks(30);

27、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提供了一個peaks函數,可產生一個凹凸有致的曲面,包含了三個局部極大點及三個局部極小點,其方程式為: 特殊二、三維圖形特殊二、三維圖形1、特殊的二維圖形函數特殊的二維圖形函數2、特殊的三維圖形函數特殊的三維圖形函數特殊的二維圖形函數特殊的二維圖形函數1、極坐標圖:、極坐標圖:polar (theta,rho,s) 用角度thet

28、a(弧度表示)和極半徑rho作極坐標圖,用s指定線型。例的極坐標圖形。2cos2sinr解: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);2、 散點圖散點圖: scatter(X,Y,S,C)%S-size C-color 在向量X和Y的指定位置顯示彩色圈X和Y必須大小相同解解 輸入命令: load seamount % seamounts are underwater mountains. sca

29、tter(x,y,5,z)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) %沿線標識法 colormap cool例例 繪制seamount散點圖例例 在范圍-2x2,-2y3 內繪22yxxez的等值線圖特殊的三維圖形函數特殊的三維圖形函數1、空間等值線圖:、空間等值線圖: contour 3(x,y,z,n) 其中n表示等值線數。例例 山峰的三維和二維等值線圖

30、。 解 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) title(contour of peaks);3、三維散點圖三維散點圖 scatter3(X,Y,Z,S,C) 在向量X,Y和Z指定的位置上顯示彩色圓圈. 向量X,Y和Z的大小必須相同.解解 輸入命令:x,y,z=sphere(16);X=x(:)*.5 x(:)*.75 x(:);Y=y(:)*.5 y(:)*.75 y(:);Z=z(:)*.5 z(:)*.75 z(:);S=repmat(1 .75 .5*10,prod(size(x),1);C=repmat(1 2 3,prod(size(x),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),filled),view(-60,60)例例 繪制三維散點圖。繪制山區地貌圖繪制山區地貌圖 要在某山區方圓大約27平方公里范圍內修建一條公路,從

溫馨提示

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

評論

0/150

提交評論