《道客巴巴MATLAB作》由會員分享,可在線閱讀,更多相關《道客巴巴MATLAB作(29頁珍藏版)》請在裝配圖網上搜索。
1、后勤工程學院數(shù)學教研室 數(shù)學建模與數(shù)學實驗 山東工商學院數(shù)學與信息科學學院 MATLAB作圖 二維圖形 三維圖形 圖形處理 實例 作 業(yè) Matlab作圖是通過描點、連線來實現(xiàn)的,故在 畫一個曲線圖形之前,必須先取得該圖形上的 一系列的點的坐標(即橫坐標和縱坐標),然 后將該點集的坐標傳給 Matlab函數(shù)畫圖 . 命令為: PLOT(X,Y,S) PLOT(X,Y)-畫實線 PLOT(X,Y1,S1,X,Y2,S2,X,Yn,Sn) -將多條線畫在一起 X,Y是向量 ,分別表示點集的橫坐標和縱坐標 線型 y 黃色 . 點 - 連線 m 洋紅 o 圈 : 短虛線 c 藍綠色 x x-符號 -.
2、 長短線 r 紅色 + 加號 - 長虛線 1.曲線圖 例 在 0,2*pi用紅線畫 sin(x),用綠圈畫 cos(x). x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,r,x,z,g0) 解 0 1 2 3 4 5 6 7 - 1 - 0.8 - 0.6 - 0.4 - 0.2 0 0.2 0.4 0.6 0.8 1 Matlab liti1 2.符號函數(shù) (顯函數(shù)、隱函數(shù)和參數(shù)方程 )畫圖 (1) ezplot ezplot(x(t),y(t),tmin,tmax) 表示在區(qū)間 tminttmax繪制參數(shù)方程 x=x(t),y=y(
3、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)3,sin(t)3,0.2*pi) Matlab liti41 例 在 - 2 , 0 . 5 , 0 , 2 上畫隱函數(shù) 0)s i n ( xye x 的圖 解 輸入命令
4、 ezplot(exp(x)+sin(x*y),-2,0.5,0,2) Matlab liti40 例 在 0 , 2 * p i 上畫 tx 3c o s , ty 3s i n 星形圖 (2) fplot 注意: 1 fun必須是 M文件的函數(shù)名或是獨立變量為 x的字符串 . 2 fplot函數(shù)不能畫參數(shù)方程和隱函數(shù)圖形, 但在一個圖上可以畫多個圖形。 fplot(fun,lims) 表示繪制字符串 fun指定的函數(shù)在 lims=xmin,xmax的圖形 . 例 在 - 1 , 2 上畫 )3s i n ( 22 xey x 的 圖形 解 先建 M文件 myfun1.m: function
5、 Y=myfun1(x) Y=exp(2*x)+sin(3*x.2) 再輸入命令: fplot(myfun1,-1,2) Matlab liti43 例 x 、 y 的取值范圍都在 - 2 , 2 , 畫函數(shù) ta n h ( x ) , s in ( x ) , c o s ( x ) 的圖形 Matlab liti28 解 輸入命令 : fplot(tanh(x),sin(x),cos(x),2*pi*-1 1 1 1) 例 在 -2,2范圍內繪制函數(shù) tanh的圖形 Matlab liti42 解 fplot(tanh,-2,2) 3. 對數(shù)坐標圖 在很多工程問題中 ,通過對數(shù)據(jù)進行對數(shù)
6、轉換可以 更清晰地看出數(shù)據(jù)的某些特征 ,在對數(shù)坐標系中描繪數(shù) 據(jù)點的曲線 ,可以直接地表現(xiàn)對數(shù)轉換 .對數(shù)轉換有雙對 數(shù)坐標轉換和單軸對數(shù)坐標轉換兩種 .用 loglog函數(shù)可 以實現(xiàn)雙對數(shù)坐標轉換 ,用 semilogx和 semilogy函數(shù)可以 實現(xiàn)單軸對數(shù)坐標轉換 . loglog(Y) 表示 x、 y坐標都是對數(shù)坐標系 semilogx(Y) 表示 x坐標軸是對數(shù)坐標系 semilogy() 表示 y坐標軸是對數(shù)坐標系 plotyy 有兩個 y坐標軸,一個在左邊,一個在右邊 例 用方形標記創(chuàng)建一個簡單的 loglog 解 輸入命令 : x=logspace(-1,2); loglog
7、(x,exp(x),-s) grid on %標注格柵 Matlab liti37 例 創(chuàng)建一個簡單的半對數(shù)坐標圖 解 輸入命令 : x=0:.1:10; semilogy(x,10.x) Matlab liti38 例 繪制 y=x3的函數(shù)圖、對數(shù)坐標圖、半對數(shù)坐標圖 Matlab liti22 返回 三維圖形 1、 空間曲線 2、 空間曲面 返回 PLOT3(x,y,z,s) 空 間 曲 線 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),co
8、s(t),t) rotate3d %旋轉 n維向量,分別表示曲 線上點集的橫坐標、縱 坐標、函數(shù)值 指定顏色、 線形等 PLOT3(x,y,z) 2、 多條曲線 例 畫多條曲線觀察函數(shù) Z=(X+Y).2. (這里 X, Y=meshgrid(x,y)的 作用是產生 |y|行, |x|列的矩陣 X,Y, 其中 X以向量 x為行、 Y以向量 y為列的 矩陣) Matlab liti9 其中 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) 返回 空
9、 間 曲 面 例 畫函數(shù) 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 flat %將當前圖形變得平滑 Matlab liti11 (1) surf(x,y,z) 畫出數(shù)據(jù)點( x, y, z)表示的曲面 數(shù)據(jù)矩陣。分別表示 數(shù)據(jù)點的橫坐標、縱 坐標、函數(shù)值 ( 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 例 畫出曲
10、面 Z=(X+Y).2在不同視角的網格圖 . 畫網格曲面 數(shù)據(jù)矩陣。分別表示 數(shù)據(jù)點的橫坐標、縱 坐標、函數(shù)值 (3)meshz(X,Y,Z) 在網格周圍畫一個 curtain圖 (如 ,參考平面 ) 解 輸入命令 : X,Y=meshgrid(-3:.125:3); Z=praks(X,Y); Meshz(X,Y,Z) 例 繪 peaks的網格圖 Matlab liti36 返回 在圖形上加格柵、圖例和標注 定制坐標 圖形保持 分割窗口 縮放圖形 改變視角 圖 形 處 理 返回 1、在圖形上加格柵、圖例和標注 ( 1) GRID ON: 加格柵在當前圖上 GRID OFF: 刪除格柵 處理圖
11、形 ( 2) hh = xlabel(string): 在當前圖形的 x軸上加圖例 string hh = ylabel(string): 在當前圖形的 y軸上加圖例 string hh = title(string): 在當前圖形的頂端上加圖例 string hh = zlabel(string): 在當前圖形的 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ù)
12、 Y) title(示意圖 ) grid on Matlab liti2 ( 3) hh = gtext(string) 命令 gtext(string)用鼠標放置標注在現(xiàn)有的圖上 . 運行命令 gtext(string)時,屏幕上出現(xiàn)當前圖形,在 圖形上出現(xiàn)一個交叉的十字,該十字隨鼠標的移動移動, 當按下鼠標左鍵時,該標注 string放在當前十交叉的位 置 . 例 在區(qū)間 0,2*pi畫 sin(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
13、);gtext(cos(x) Matlab liti3 返回 2、定制坐標 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) axis(0.005 0.01 1 1) Matlab liti4 返回 定制圖形坐標 將坐標軸返回到自動缺省值 Axis auto x、 y、 z的最大、最小值 3、圖形保持 (1) hold on hold off 例 將 y=sin(x)、 y=cos(x)分別用點和線畫
14、出在同一屏幕上。 解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,ro:) hold on Plot(x,y) Matlab liti5 保持當前圖形 , 以便繼續(xù)畫圖到當前圖上 釋放當前圖形窗口 (2) figure(h) 例 區(qū)間 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 figure(2); plot(x,z); title(cos(x); Mat
15、lab liti6 返回 新建 h窗口, 激活圖形使其可見,并把它置 于其它圖形之上 4、分割窗口 h=subplot(mrows,ncols,thisplot) 劃分整個作圖區(qū)域為 mrows*ncols塊(逐行對塊訪問)并激活第 thisplot塊,其后的作圖語句將圖形畫在該塊上。 激活已劃分為 mrows*ncols塊的屏幕中的第 thisplot塊,其后 的作圖語句將圖形畫在該塊上。 命令 Subplot(1,1,1)返回非分割狀態(tài)。 subplot(mrows,ncols,thisplot) subplot(1,1,1) 解 x=linspace(0,2*pi,100); y=sin
16、(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)。 Matlab lit
17、i7 返回 5、縮放圖形 zoom on 單擊鼠標左鍵,則在當前圖形窗口中,以鼠標點中的點為 中心的圖形放大 2倍;單擊鼠標右鍵,則縮小 2倍 解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on Matlab liti13 例 縮放 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=
18、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在不同視角的網格圖 . view用空間矢量表示的,三個量只關心它們的比例,與數(shù) 值的大小無關, x軸 view( 1, 0, 0), y軸 view( 0, 1, 0), z軸 view( 0, 0, 1)。 ( 2) view( x, y, z) 返回 返回 實驗作業(yè) 1、在同一平面中的兩個窗口分別畫出心形線和馬鞍面。 要求: 1、 在圖形上加格柵、圖例和標注 2、 定制坐標 3、以不同角度觀察馬鞍面 2、以不同的視角觀察球面 和 圓柱面 所圍區(qū)域。 2222 rzyx rxyx 22