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