版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、后勤工程學院數學教研室,數學建模與數學實驗,數學與信息科學學院,MATLAB作圖,Matlab作圖,二維圖形,三維圖形,圖形處理,實例,作業(yè),特殊二、三維圖形,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
2、(x).,x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,r,x,z,g0),解,Matlab liti1,圖形標記 在繪制圖形的同時,可以對圖形加上一些說明,如圖形名稱、圖形某一部分的含義、坐標說明等,將這些操作稱為添加圖形標記。 title(加圖形標題); xlabel(加X軸標記); ylabel(加Y軸標記); text(X,Y,添加文本); grid on 加網格線 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,設定坐標軸 用戶若對坐標系統不滿意,可利用axis命令對其重新設定。 axis(xmin xmax ymin ymax) 設定最大和最小值 axis (auto) 將坐標系統返回到自動缺省狀態(tài) axis (square) 將當前圖形設置為方形 axis (equal) 兩個坐標因子設成相等 axis (off) 關閉坐標系統 axis (on) 顯示坐標系統,在坐標范圍0X2
4、,-2Y2內重新繪制正弦曲線,其程序為: x=linspace(0,2*pi,60);生成含有60個數據元素的向量X y=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);,Matlab aaa,
5、2.符號函數(顯函數、隱函數和參數方程)畫圖,(1) ezplot,ezplot(x(t),y(t),tmin,tmax) 表示在區(qū)間tminttmax繪制參數方程 x=x(t),y=y(t)的函數圖,ezplot(f(x),a,b) 表示在axb繪制顯函數f=f(x)的函數圖,ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在區(qū)間xminxxmax和 yminyymax繪制 隱函數f(x,y)=0的函數圖,例 在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文件的函數名或是獨立變量為x的字符串. 2 fplot函數不能畫參數方程和隱函數圖形,但在一個圖上可以畫多個圖形。,fplot(fun,lims) 表示繪制字符串fun指定的函數在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范圍內繪制函數tanh的圖形 解 fplot(tanh,-2,2),Matlab liti42,subplot(m,n,p) 該命令將當前圖形窗口分成mn個繪圖區(qū),即每行n個,共m行,區(qū)號按行優(yōu)先編號,且選定第p個區(qū)為當前活動區(qū)。, subplot函數,例 在一個圖形窗口中同時繪制正弦、余弦、正切、余切曲線,程序為: x=linspace(0,2*pi,60
8、); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); eps為系統內部常數 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. 對數坐標圖,在很多工程問題中,通過對數據進行對數轉換可以更清晰地看出數據的某些特征,在對數坐標系中描繪數據點的曲線,可以直接地表現對數轉換.對數轉換有雙對數坐標轉換和單軸對數坐標轉換兩種.用loglog函數可以實現雙對數坐標轉換,用semilogx和semilogy函數可以實現單軸對數坐標轉換.,loglog(Y) 表示 x、y坐標都是對數坐標系 semilogx(Y) 表示 x坐標軸是對數坐標系 semilogy() 表示y坐標軸是對數坐標系 plotyy 有兩個y坐標軸
10、,一個在左邊,一個在右邊,例 用方形標記創(chuàng)建一個簡單的loglog,解 輸入命令: x=logspace(-1,2); loglog(x,exp(x),-s) grid on %標注格柵,Matlab liti37,例 創(chuàng)建一個簡單的半對數坐標圖 解 輸入命令: x=0:.1:10; semilogy(x,10.x),Matlab liti38,例 繪制y=x3的函數圖、對數坐標圖、半對數坐標圖,Matlab liti22,返回,6 其它圖形函數,除plot等基本繪圖命令外,Matlab系統提供了許多其它特殊繪圖函數,這里舉一些代表性例子,更詳細的信息用戶可隨時查閱在線幫助,其對應的M-fil
11、e文件存放在系統matlabtoolboxmatlab目錄下。,6.1階梯圖形 函數stairs(x,y)可以繪制階梯圖形,如下列程序段: x=-2.5: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 規(guī)定填充顏色,其取
12、值前已敘述。 下述程序段繪制一正方形并以黃色填充:,x=0 1 1 0 0; 正方形頂點坐標向量 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系統可用向量表示顏色,通常稱其為顏色向量?;绢伾蛄坑胷 g b表示,即RGB顏色組合;以RGB為基本色,通過 r,g,b在01范圍內的不同取值可以組合出各種顏色。,二維繪圖函數小結,plot 二維圖形基本函數 fplot f(x)函數曲線繪制 fill 填充二維多邊圖形 polar 極坐標
13、圖 bar 條形圖 loglog 雙對數坐標圖 semilogx X軸為對數的坐標圖 semilogy Y軸為對數的坐標圖 stairs 階梯形圖 axis 設置坐標軸 clf 清除圖形窗口內容 close 關閉圖形窗口,ezplot 符號函數 figure 創(chuàng)建圖形窗口 grid 放置坐標網格線 gtext 用鼠標放置文本 hold 保持當前圖形窗口內容 subplot 創(chuàng)建子圖 text 放置文本 title 放置圖形標題 xlabel 放置X軸坐標標記 ylabel 放置Y軸坐標標記 Subplot 多子圖,三維圖形,1、空間曲線,2、空間曲面,返回,plot3(x,y,z,s),空 間
14、 曲 線,1、 一條曲線,例 在區(qū)間0,10*pi畫出參數曲線x=sin(t),y=cos(t), z=t.,Matlab liti8,解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋轉,plot3(x,y,z),2、多條曲線,例 畫多條曲線觀察函數Z=(X+Y).2.,(這里meshgrid(x,y)的作用是產生一個以向量x為行、向量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).
15、2; plot3(X,Y,Z),返回,函數格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,) 其中x1,y1,z1表示三維坐標向量,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的圖形. 解
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 %將當前圖形變得平滑,Matlab liti11,(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),Matlab liti24,例 畫出曲面Z=(X+Y).2在不同視角的網格圖.,畫網格曲面,mesh函數用于繪制三維網格圖。在不需要繪制特別精細的三維曲面結構
17、圖時,可以通過繪制三維網格圖來表示三維曲面。三維曲面的網格圖最突出的優(yōu)點是:它較好地解決了實驗數據在三維空間的可視化問題。,在圖形上加格柵、圖例和標注,定制坐標,圖形保持,分割窗口,縮放圖形,改變視角,圖形處理,返回,動 畫,1、在圖形上加格柵、圖例和標注,(1)grid on: 加格柵在當前圖上 grid off: 刪除格柵,處理圖形,(2)hh = xlabel(string): 在當前圖形的x軸上加圖例string,hh = ylabel(string): 在當前圖形的y軸上加圖例string,hh = title(string): 在當前圖形的頂端上加圖例string,hh = zla
18、bel(string): 在當前圖形的z軸上加圖例string,例 在區(qū)間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,Matlab liti2,(3) hh = gtext(string),命令gtext(string)用鼠標放置標注在現有的圖上. 運行命令gtext(string)時,屏幕上出現當前圖形,在 圖形上出現一個交叉的十字,該十字隨鼠標的移動移動, 當按
19、下鼠標左鍵時,該標注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);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)
20、 axis(0.005 0.01 1 1),Matlab liti4,返回,定制圖形坐標,將坐標軸返回到自動缺省值,axis auto,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),Matlab liti5,保持當前圖形, 以便繼續(xù)畫圖到當前圖上,釋放當前圖形窗口,(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ū)域為mrows*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,單擊鼠標左鍵,則在當前圖形窗口中,以鼠標點中的點為中心的圖形放大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
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、的網格圖.,view用空間矢量表示的,三個量只關心它們的比例,與數值的大小無關,x軸view(1,0,0),y軸view(0,1,0),z軸view(0,0,1)。,(2)view(x,y,z),返回,7 動畫設計,如果將Matlab產生的多幅圖形保存起來,并利用系統提供的函數進行播放,就可產生動畫效果。系統所提供的動畫功能函數有getframe、moviein和movie。,getframe函數 getframe函數可將當前圖形窗口作為一個畫面取下并保存,格式為:m=getframe它將每一幀畫面信息數據截取下來整理成列向量。該函數截取圖形的點陣信息,圖形窗口的大小,對數據向量的大小影響較大
26、,窗口越大,所需存儲容量越大。而圖形的復雜性對數據容量要求沒有直接的關系。,moviein函數 函數m=moviein(n)用來建立一個足夠大的n列的矩陣m,用來保存n幅畫面的數據,以備播放。 movie函數 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函數,可產生一個凹凸有致的曲面,包含了三個局部極大點及三個局部極小點,其方程式為:,特殊二、三維圖形,1、特殊的二維圖形函數,2、特殊的三維圖形函數,返回,特殊的二維圖形函數,1、極坐標圖:polar (theta,rho,s),用角度theta(弧度表示)和極半徑rho作極坐標圖,用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、 散點圖:
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) %沿線標識法 colormap c
30、ool,Matlab liti34,例 繪制seamount散點圖,返回,特殊的三維圖形函數,1、空間等值線圖: contour 3(x,y,z,n),其中n表示等值線數。,例 山峰的三維和二維等值線圖。,解 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教五四新版八年級地理下冊階段測試試卷含答案
- 2025年牛津上海版九年級地理下冊月考試卷含答案
- 2025年上教版選修3生物上冊階段測試試卷含答案
- 2025年滬科版必修3生物下冊階段測試試卷
- 2025年浙教版必修3生物上冊月考試卷含答案
- 二零二五年度爬架租賃與施工安全防護方案合同4篇
- 抽沙工程合同(2篇)
- 2024版違約合同的民事起訴狀
- 2025年度柑橘滯銷產品“搶購”線上線下聯動合同2篇
- 二零二五版屋頂廣告位使用權租賃與管理合同3篇
- 垃圾處理廠工程施工組織設計
- 天皰瘡患者護理
- 2025年高考物理復習壓軸題:電磁感應綜合問題(原卷版)
- 2025年蛇年新年金蛇賀歲金蛇狂舞春添彩玉樹臨風福滿門模板
- 《建筑制圖及陰影透視(第2版)》課件 4-直線的投影
- 2024-2030年中國IVD(體外診斷)測試行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 碎紙機設計說明書
- 湖南省長沙市青竹湖湘一外國語學校2021-2022學年八年級下學期期中語文試題
- 2023年廣東省深圳市八年級下學期物理期中考試試卷
- 《詩詞寫作常識 詩詞中國普及讀物 》讀書筆記思維導圖
- 一站到底試題及答案完整版(第2801-2900題)
評論
0/150
提交評論