matlab繪圖g教學講解課件_第1頁
matlab繪圖g教學講解課件_第2頁
matlab繪圖g教學講解課件_第3頁
matlab繪圖g教學講解課件_第4頁
matlab繪圖g教學講解課件_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023/7/301第五章MATLAB繪圖2023/7/281第五章MATLAB繪圖2023/7/302

二維數(shù)據(jù)曲線圖其他二維圖形

隱函數(shù)繪圖三維圖形圖形修飾處理圖像處理與動畫制作2023/7/282二維數(shù)據(jù)曲線圖2023/7/3035.1二維數(shù)據(jù)曲線圖5.1.1繪制單根二維曲線

plot函數(shù)的基本調用格式為:

plot(x,y)

其中x和y為長度相同的向量,分別用于存儲x坐標和y坐標數(shù)據(jù)。例5-1在0≤x≤2區(qū)間內(nèi),繪制曲線

y=2e-0.5xcos(4πx)

例5-2繪制曲線。2023/7/2835.1二維數(shù)據(jù)曲線圖例5-1在0≤x2023/7/304plot函數(shù)最簡單的調用格式是只包含一個輸入?yún)?shù):

plot(x)

在這種情況下,當x是實向量時,以該向量元素的下標為橫坐標,元素值為縱坐標畫出一條連續(xù)曲線,這實際上是繪制折線圖。2023/7/284plot函數(shù)最簡單的調用格式是只2023/7/3055.1.2繪制多根二維曲線

1.plot函數(shù)的輸入?yún)?shù)是矩陣形式

(1)當x是向量,y是有一維與x同維的矩陣時,則繪制出多根不同顏色的曲線。曲線條數(shù)等于y矩陣的另一維數(shù),x被作為這些曲線共同的橫坐標。

(2)當x,y是同維矩陣時,則以x,y對應列元素為橫、縱坐標分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。2023/7/2855.1.2繪制多根二維曲線2023/7/306(3)對只包含一個輸入?yún)?shù)的plot函數(shù),當輸入?yún)?shù)是實矩陣時,則按列繪制每列元素值相對其下標的曲線,曲線條數(shù)等于輸入?yún)?shù)矩陣的列數(shù)。當輸入?yún)?shù)是復數(shù)矩陣時,則按列分別以元素實部和虛部為橫、縱坐標繪制多條曲線。2023/7/286(3)對只包含一個輸入?yún)?shù)的p2023/7/3072.含多個輸入?yún)?shù)的plot函數(shù)調用格式為:

plot(x1,y1,x2,y2,…,xn,yn)(1)當輸入?yún)?shù)都為向量時,x1和y1,x2和y2,…,xn和yn分別組成一組向量對,每一組向量對的長度可以不同。每一向量對可以繪制出一條曲線,這樣可以在同一坐標內(nèi)繪制出多條曲線。2023/7/2872.含多個輸入?yún)?shù)的plot函數(shù)2023/7/308(2)當輸入?yún)?shù)有矩陣形式時,配對的x,y按對應列元素為橫、縱坐標分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。例5-3分析下列程序繪制的曲線。2023/7/288(2)當輸入?yún)?shù)有矩陣形式時,2023/7/3093.具有兩個縱坐標標度的圖形在MATLAB中,如果需要繪制出具有不同縱坐標標度的兩個圖形,可以使用plotyy繪圖函數(shù)。調用格式為:

plotyy(x1,y1,x2,y2)

其中x1,y1對應一條曲線,x2,y2對應另一條曲線。橫坐標的標度相同,縱坐標有兩個,左縱坐標用于x1,y1數(shù)據(jù)對,右縱坐標用于x2,y2數(shù)據(jù)對。2023/7/2893.具有兩個縱坐標標度的圖形2023/7/3010例5-4用不同標度在同一坐標內(nèi)繪制曲線

y1=0.2e-0.5xcos(4πx)和

y2=2e-0.5xcos(πx)。程序如下:

x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2);2023/7/2810例5-4用不同標度在同一坐標內(nèi)繪制曲2023/7/30114.圖形保持

holdon/off命令控制是保持原有圖形還是刷新原有圖形,不帶參數(shù)的hold命令在兩種狀態(tài)之間進行切換。例5-5采用圖形保持,在同一坐標內(nèi)繪制曲線

y1=0.2e-0.5xcos(4πx)

和y2=2e-0.5xcos(πx)。2023/7/28114.圖形保持例5-5采用圖形保持,2023/7/30125.1.3設置曲線樣式

MATLAB提供了一些繪圖選項,用于確定所繪曲線的線型、顏色和數(shù)據(jù)點標記符號,它們可以組合使用。例如,“b-.”表示藍色點劃線,“y:d”表示黃色虛線并用菱形符標記數(shù)據(jù)點。當選項省略時,MATLAB規(guī)定,線型一律用實線,顏色將根據(jù)曲線的先后順序依次。要設置曲線樣式可以在plot函數(shù)中加繪圖選項,其調用格式為:

plot(x1,y1,選項1,x2,y2,選項2,…,xn,yn,選項n)2023/7/28125.1.3設置曲線樣式2023/7/3013曲線的色彩、線型和數(shù)據(jù)點型參數(shù)定義顏

色符號含

義數(shù)

據(jù)點型含

義線

型含

義b藍色.點-實線g綠色xX符號:點線r紅色++號-.點劃線c籃綠色h六角星形--虛線m紫紅色*星號(空白)不畫線y黃色s方形

k黑色d菱形

2023/7/2813曲線的色彩、線型和數(shù)據(jù)點型參數(shù)定義顏2023/7/3014例5-6在同一坐標內(nèi),分別用不同線型和顏色繪制曲線y1=0.2e-0.5xcos(4πx)

和y2=2e-0.5xcos(πx),標記兩曲線交叉點。x=linspace(0,2*pi,1000);y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);k=find(abs(y1-y2)<1e-2);%查找y1與y2相等點(近似相等)的下標x1=x(k);%取y1與y2相等點的x坐標y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);%求y1與y2值相等點的y坐標plot(x,y1,x,y2,'k:',x1,y3,'rp');2023/7/2814例5-6在同一坐標內(nèi),分別用不同線2023/7/30155.1.4圖形標注與坐標控制

1.圖形標注有關圖形標注函數(shù)的調用格式為:

title(圖形名稱)xlabel(x軸說明)ylabel(y軸說明)text(x,y,圖形說明)legend(圖例1,圖例2,…)2023/7/28155.1.4圖形標注與坐標控制2023/7/3016

函數(shù)中的說明文字,除使用標準的ASCII字符外,還可使用LaTeX格式的控制字符,這樣就可以在圖形上添加希臘字母、數(shù)學符號及公式等內(nèi)容。例如,text(0.3,0.5,‘sin({\omega}t+{\beta})’)將得到標注效果sin(ωt+β)。2023/7/2816函數(shù)中的說明文字,除2023/7/3017x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('xfrom0to2{\pi}');%加圖形標題xlabel('VariableX');%加X軸說明ylabel('VariableY');%加Y軸說明text(0.8,1.5,'曲線y1=2e^{-0.5x}');%在指定位置添加圖形說明text(2.5,1.1,'曲線y2=cos(4{\pi}x)');legend('y1','y2');%加圖例例5-7在0≤x≤2區(qū)間內(nèi),繪制曲線y1=2e-0.5x

和y2=cos(4πx),并給圖形添加圖形標注2023/7/2817x=0:pi/100:2*pi;例5-2023/7/3018axis函數(shù)的調用格式為:axis([xminxmaxyminymaxzminzmax])axis函數(shù)功能豐富,常用的格式還有:axisequal:縱、橫坐標軸采用等長刻度。axissquare:產(chǎn)生正方形坐標系(缺省為矩形)。axisauto:使用缺省設置。axisoff:取消坐標軸。axison:顯示坐標軸。2.坐標控制2023/7/2818axis函數(shù)的調用格式為:2.坐標控2023/7/3019

給坐標加網(wǎng)格線用grid命令來控制。gridon/off命令控制是畫還是不畫網(wǎng)格線,不帶參數(shù)的grid命令在兩種狀態(tài)之間進行切換。給坐標加邊框用box命令來控制。boxon/off命令控制是加還是不加邊框線,不帶參數(shù)的box命令在兩種狀態(tài)之間進行切換。2023/7/2819給坐標加網(wǎng)格線用grid命令來2023/7/3020t=0:0.01:2*pi;x=exp(i*t);y=[x;2*x;3*x]';plot(y)%gridon;%加網(wǎng)格線boxoff;%加坐標邊框axisequal%坐標軸采用等刻度例5-8在同一坐標中,可以繪制3個同心圓,并加坐標控制。2023/7/2820t=0:0.01:2*pi;例5-82023/7/30215.1.5圖形的可視化編輯

MATLAB在圖形窗口中提供了可視化的圖形編輯工具,利用圖形窗口菜單欄或工具欄中的有關命令可以完成對窗口中各種圖形對象的編輯處理。在圖形窗口上有一個菜單欄和工具欄。菜單欄包含F(xiàn)ile、Edit、View、Insert、Tools、Desktop、Window和Help共7個菜單項,工具欄包含13個命令按鈕。2023/7/28215.1.5圖形的可視化編輯2023/7/30225.1.6對函數(shù)自適應采樣的繪圖函數(shù)

fplot函數(shù)的調用格式為:

fplot(fname,lims,tol,選項)

其中,fname為函數(shù)名,以字符串形式出現(xiàn),lims為x,y的取值范圍,tol為相對允許誤差,其系統(tǒng)默認值為2e-3。選項定義與plot函數(shù)相同。2023/7/28225.1.6對函數(shù)自適應采樣的繪圖函數(shù)2023/7/3023例5-9用fplot函數(shù)繪制f(x)=cos(tan(πx))的曲線。命令如下:

fplot('cos(tan(pi*x))',[0,1],1e-4)2023/7/2823例5-9用fplot函數(shù)繪制f(x)2023/7/30245.1.7圖形窗口的分割

subplot函數(shù)的調用格式為:

subplot(m,n,p)

該函數(shù)將當前圖形窗口分成m×n個繪圖區(qū),即每行n個,共m行,區(qū)號按行優(yōu)先編號,且選定第p個區(qū)為當前活動區(qū)。在每一個繪圖區(qū)允許以不同的坐標系單獨繪制圖形。例5-10在圖形窗口中,以子圖形式同時繪制多根曲線。2023/7/28245.1.7圖形窗口的分割2023/7/3025clf;t=(pi*(0:1000)/1000)';y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1)plot(t,y1);axis([0,pi,-1,1])subplot(2,2,2)plot(t,y2);axis([0,pi,-1,1])%subplot(2,1,2)subplot('position',[0.2,0.05,0.6,0.45])%在指定位置上開辟子圖,并成為當前圖[left,bottom,width,height]plot(t,y12,'b-',t,[y1,-y1],'r:');axis([0,pi,-1,1]);例5-10在圖形窗口中,以子圖形式同時繪制多根曲線。2023/7/2825clf;例5-10在圖形窗口中,以2023/7/30265.2其他二維圖形5.2.1其他坐標系下的二維數(shù)據(jù)曲線圖

1.對數(shù)坐標圖形

MATLAB提供了繪制對數(shù)和半對數(shù)坐標曲線的函數(shù),調用格式為:

semilogx(x1,y1,選項1,x2,y2,選項2,…)semilogy(x1,y1,選項1,x2,y2,選項2,…)loglog(x1,y1,選項1,x2,y2,選項2,…)2023/7/28265.2其他二維圖形2023/7/3027x=[0257101215172021];y=[0.10.20.50.60.911.21.261.221.2];subplot(2,2,1),plot(x,y);subplot(2,2,2),semilogx(x,y);subplot(2,2,3),semilogy(x,y);subplot(2,2,4),loglog(x,y);2023/7/2827x=[02571012152023/7/30282.極坐標圖

polar函數(shù)用來繪制極坐標圖,其調用格式為:

polar(theta,rho,選項)

其中theta為極坐標極角,rho為極坐標矢徑,選項的內(nèi)容與plot函數(shù)相似。2023/7/28282.極坐標圖2023/7/3029clft=0:pi/50:2*pi;r=sin(t).*cos(t);polar(t,r,'-*');例5-12繪制r=sin(t)cos(t)的極坐標圖,并標記數(shù)據(jù)點。2023/7/2829clf例5-12繪制r=sin(t)2023/7/30305.2.2二維統(tǒng)計分析圖

在MATLAB中,二維統(tǒng)計分析圖形很多,常見的有條形圖、階梯圖、桿圖和填充圖等,所采用的函數(shù)分別是:

bar(x,y,選項)stairs(x,y,選項)stem(x,y,選項)fill(x1,y1,選項1,x2,y2,選項2,…)2023/7/28305.2.2二維統(tǒng)計分析圖2023/7/3031x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]);subplot(2,2,2);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,-2,2]);subplot(2,2,3);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,-2,2]);subplot(2,2,4);fill(x,y,'y');title('fill(x,y,''y'')');axis([0,7,-2,2]);例5-13分別以條形圖、階梯圖、桿圖和填充圖形式繪制曲線y=2sin(x)。2023/7/2831x=0:pi/10:2*pi;例5-12023/7/3032MATLAB提供的統(tǒng)計分析繪圖函數(shù)還有很多,例如,用來表示各元素占總和的百分比的餅圖、復數(shù)的相量圖等等。例5-14繪制圖形:

(1)某企業(yè)全年各季度的產(chǎn)值(單位:萬元)分別為:2347,1827,2043,3025,試用餅圖作統(tǒng)計分析。

(2)繪制復數(shù)的相量圖:7+2.9i、2-3i

和-1.5-6i。2023/7/2832MATLAB提供的統(tǒng)計分析繪圖函2023/7/3033clfsubplot(1,2,1);pie([2347,1827,2043,3025]);title('餅圖');legend('一季度','二季度','三季度','四季度');subplot(1,2,2);compass([7+2.9i,2-3i,-1.5-6i]);title('相量圖');2023/7/2833clf2023/7/30345.3隱函數(shù)繪圖

MATLAB提供了一個ezplot函數(shù)繪制隱函數(shù)圖形,下面介紹其用法。

(1)對于函數(shù)f=f(x),ezplot函數(shù)的調用格式為:

ezplot(f):在默認區(qū)間-2π<x<2π繪制f=f(x)的圖形。

ezplot(f,[a,b]):在區(qū)間a<x<b繪制f=f(x)的圖形。2023/7/28345.3隱函數(shù)繪圖2023/7/3035(2)對于隱函數(shù)f=f(x,y),ezplot函數(shù)的調用格式為:

ezplot(f):在默認區(qū)間-2π<x<2π和

-2π<y<2π繪制f(x,y)=0的圖形。

ezplot(f,[xmin,xmax,ymin,ymax]):在區(qū)間xmin<x<xmax和ymin<y<ymax繪制f(x,y)=0的圖形。

ezplot(f,[a,b]):在區(qū)間a<x<b和a<y<b繪制f(x,y)=0的圖形。2023/7/2835(2)對于隱函數(shù)f=f(x,y)2023/7/3036(3)對于參數(shù)方程x=x(t)和y=y(t),ezplot函數(shù)的調用格式為:

ezplot(x,y):在默認區(qū)間0<t<2π繪制x=x(t)和y=y(t)的圖形。

ezplot(x,y,[tmin,tmax]):在區(qū)間tmin<t<tmax繪制x=x(t)和y=y(t)的圖形。2023/7/2836(3)對于參數(shù)方程x=x(t)和2023/7/3037clfsubplot(2,2,1);ezplot('x^2+y^2-9');axisequalsubplot(2,2,2);ezplot('x^3+y^3-5*x*y+1/5')subplot(2,2,3);ezplot('cos(tan(pi*x))',[0,1])subplot(2,2,4);ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi])例5-15隱函數(shù)繪圖應用舉例。2023/7/2837clf例5-15隱函數(shù)繪圖應用舉例。2023/7/30385.4三維圖形5.4.1三維曲線

plot3函數(shù)與plot函數(shù)用法十分相似,其調用格式為:

plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…,xn,yn,zn,選項n)

其中每一組x,y,z組成一組曲線的坐標參數(shù),選項的定義和plot函數(shù)相同。當x,y,z是同維向量時,則x,y,z

對應元素構成一條三維曲線。當x,y,z是同維矩陣時,則以x,y,z對應列元素繪制三維曲線,曲線條數(shù)等于矩陣列數(shù)。2023/7/28385.4三維圖形2023/7/3039程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Linein3-DSpace');xlabel('X');ylabel('Y');zlabel('Z');gridon;例5-16繪制三維曲線。2023/7/2839程序如下:例5-16繪制三維曲線。2023/7/30405.4.2三維曲面1.產(chǎn)生三維數(shù)據(jù)在MATLAB中,利用meshgrid函數(shù)產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標矩陣。其格式為:

x=a:d1:b;y=c:d2:d;[X,Y]=meshgrid(x,y);

語句執(zhí)行后,矩陣X的每一行都是向量x,行數(shù)等于向量y的元素的個數(shù),矩陣Y的每一列都是向量y,列數(shù)等于向量x的元素的個數(shù)。2023/7/28405.4.2三維曲面2023/7/30412.繪制三維曲面的函數(shù)

surf函數(shù)和mesh函數(shù)的調用格式為:

mesh(x,y,z,c)surf(x,y,z,c)

一般情況下,x,y,z是維數(shù)相同的矩陣。x,y是網(wǎng)格坐標矩陣,z是網(wǎng)格點上的高度矩陣,c用于指定在不同高度下的顏色范圍。例5-17繪制三維曲面圖z=sin(x+sin(y))-x/10。2023/7/28412.繪制三維曲面的函數(shù)例5-17繪2023/7/3042[x,y]=meshgrid(0:0.25:4*pi);z=sin(x+sin(y))-x/10;surf(x,y,z);axis([04*pi04*pi-2.51]);figuremesh(x,y,z);axis([04*pi04*pi-2.51]);2023/7/2842[x,y]=meshgrid(0:0.2023/7/3043

此外,還有帶等高線的三維網(wǎng)格曲面函數(shù)

meshc和帶底座的三維網(wǎng)格曲面函數(shù)meshz。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。例5-18在xy平面內(nèi)選擇區(qū)域[-8,8]×[-8,8],繪制4種三維曲面圖。2023/7/2843此外,還有帶等高線的三維網(wǎng)格曲面函2023/7/3044[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);subplot(2,2,1);mesh(x,y,z);title('mesh(x,y,z)')subplot(2,2,2);meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,3);meshz(x,y,z)title('meshz(x,y,z)')subplot(2,2,4);surf(x,y,z);title('surf(x,y,z)')2023/7/2844[x,y]=meshgrid(-8:02023/7/30453.標準三維曲面球面函數(shù)sphere函數(shù)的調用格式為:

[x,y,z]=sphere(n)

柱面函數(shù)cylinder函數(shù)的調用格式為:

[x,y,z]=cylinder(R,n)MATLAB還有一個peaks函數(shù),稱為多峰函數(shù),常用于三維曲面的演示。例5-19繪制標準三維曲面圖形。2023/7/28453.標準三維曲面例5-19繪制標準2023/7/3046t=0:pi/20:2*pi;[x,y,z]=cylinder(2+sin(t),30);subplot(2,2,1);surf(x,y,z);title('[x,y,z]=cylinder(2+sin(t),30)')subplot(2,2,2);[x,y,z]=sphere;%20X20surf(x,y,z);title('[x,y,z]=sphere')subplot(2,1,2);[x,y,z]=peaks(30);%30X30surf(x,y,z);title('[x,y,z]=peaks(30)')2023/7/2846t=0:pi/20:2*pi;2023/7/30475.4.3其他三維圖形在介紹二維圖形時,曾提到條形圖、桿圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現(xiàn),使用的函數(shù)分別是bar3、stem3、pie3和fill3。

bar3函數(shù)繪制三維條形圖,常用格式為:

bar3(y)bar3(x,y)2023/7/28475.4.3其他三維圖形2023/7/3048stem3函數(shù)繪制離散序列數(shù)據(jù)的三維桿圖,常用格式為:

stem3(z)stem3(x,y,z)pie3函數(shù)繪制三維餅圖,常用格式為:

pie3(x)fill3函數(shù)等效于二維函數(shù)fill,可在三維空間內(nèi)繪制出填充過的多邊形,常用格式為:

fill3(x,y,z,c)2023/7/2848stem3函數(shù)繪制離散序列數(shù)據(jù)的三維桿2023/7/3049例5-20繪制三維圖形:(1)繪制魔方陣的三維條形圖。(2)以三維桿圖形式繪制曲線y=2sin(x)。(3)已知x=[2347,1827,2043,3025],繪制餅圖。(4)用隨機的頂點坐標值畫出五個黃色三角形。2023/7/2849例5-20繪制三維圖形:2023/7/3050

clearsubplot(2,2,1);bar3(magic(4))subplot(2,2,2);y=2*sin(0:pi/10:2*pi);stem3(y);subplot(2,2,3);x=[2347,1827,2043,3025];explode=[0010]%pie3(x);pie3(x,explode)subplot(2,2,4);fill3(rand(3,5),rand(3,5),rand(3,5),'y')2023/7/2850clear2023/7/30515.5圖形修飾處理5.5.1視點處理

MATLAB提供了設置視點的函數(shù)view,其調用格式為:

view(az,el)

其中,az為方位角,el為仰角,它們均以度為單位。系統(tǒng)缺省的視點定義為方位角-37.5°,仰角30°。例5.22從四個方位來觀看函數(shù)2023/7/28515.5圖形修飾處理2023/7/3052clearclfsubplot(2,2,1)peaks(50)title('az=-37.5,el=30');subplot(2,2,2)peaks(50)view(90,0)title('az=90,el=0');subplot(2,2,3)peaks(50)view(30,45)title('az=30,el=45');subplot(2,2,4)peaks(50)view(2)title('az=0,el=90');%二維平面圖2023/7/2852clear2023/7/30535.5.2色彩處理

1.顏色的向量表示

MATLAB除用字符表示顏色外,還可以用含有3個元素的向量表示顏色。向量元素在[0,1]范圍取值,3個元素分別表示紅、綠、藍3種顏色的相對亮度,稱為RGB三元組。2023/7/28535.5.2色彩處理2023/7/3054若干常用色的RGB值Red(紅)Green(綠)Blue(藍)顏

色000黑111白100紅010綠001藍110黃101洋紅011青藍2/301天藍11/20橘黃0.500深紅0.50.50.5灰色2023/7/2854若干常用色的RGB值Red(紅)Gre2023/7/30552.色圖色圖(Colormap)是MATLAB系統(tǒng)引入的概念。在MATLAB中,每個圖形窗口只能有一個色圖。色圖是m×3的數(shù)值矩陣,它的每一行是RGB三元組。色圖矩陣可以人為地生成,也可以調用MATLAB提供的函數(shù)來定義色圖矩陣。Colormap(CM)2023/7/28552.色圖2023/7/3056Matlab的預定義色圖矩陣CMCM功

能描述hsv色彩飽和值(以紅色開始和結束)hot從黑到紅到黃到白cool青藍和洋紅的色度pink粉紅的彩色度gray線性灰度bone帶一點藍色的灰度jethsv的一種變形(以藍色開始和結束)copper線性銅色度prim三棱鏡,交替為紅色、橘黃色、黃色、綠色和天藍色flag交替為紅色、白色、藍色和黑色2023/7/2856Matlab的預定義色圖矩陣CMCM功2023/7/30573.三維表面圖形的著色三維表面圖實際上就是在網(wǎng)格圖的每一個網(wǎng)格片上涂上顏色。surf函數(shù)用缺省的著色方式對網(wǎng)格片著色。除此之外,還可以用shading命令來改變著色方式。

shadingfaceted命令將每個網(wǎng)格片用其高度對應的顏色進行著色,但網(wǎng)格線仍保留著,其顏色是黑色。這是系統(tǒng)的缺省著色方式。2023/7/28573.三維表面圖形的著色2023/7/3058shadingflat命令將每個網(wǎng)格片用同一個顏色進行著色,且網(wǎng)格線也用相應的顏色,從而使得圖形表面顯得更加光滑。

shadinginterp命令在網(wǎng)格片內(nèi)采用顏色插值處理,得出的表面圖顯得最光滑。例5-233種圖形著色方式的效果展示。2023/7/2858shadingflat命令將2023/7/3059[x,y,z]=sphere(20);colormap(copper);subplot(1,3,1);surf(x,y,z);shadingfacetedtitle('shadingfaceted')axisequalsubplot(1,3,2);surf(x,y,z);shadingflat;%網(wǎng)格的每個線段和表面都有相同的顏色title('shadingflat')axisequalsubplot(1,3,3);surf(x,y,z);shadinginterp;colormap(hot)title('shadinginterp')axisequal2023/7/2859[x,y,z]=sphere(20);2023/7/3060透視與消隱——

用于網(wǎng)線圖2023/7/2860透視與消隱——用于網(wǎng)線圖2023/7/3061透視與消隱p=peaks(30);mesh(p);hiddenon2023/7/2861透視與消隱2023/7/3062p=peaks(30);mesh(p);hiddenoff2023/7/2862p=peaks(30);mesh(p)2023/7/30635.5.3光照處理

MATLAB提供了燈光設置的函數(shù),其調用格式為:

light(‘color',選項1,‘style',選項2,‘position',選項3)2023/7/28635.5.3光照處理2023/7/3064光照控制MATLAB7語言提供了許多函數(shù)在圖形中進行對光源的定位并改變光照對象的特征。函

數(shù)

名功

述camlight設置并移動關于攝像頭的光源lightangle在球坐標下設置或定位一個光源light設置光源lighting選擇光源模式material設置圖形表面對光照的反映模式2023/7/2864光照控制MATLAB7語言提供了許2023/7/3065clear[x,y,z]=sphere(20);subplot(1,2,1);surf(x,y,z);axisequal;light('Position',[0,1,1]);%設置光源shadinginterp;lightingflatholdon;plot3(0,1,1,'p');text(0,1,1,'light');subplot(1,2,2);surf(x,y,z);axisequal;light(‘Position’,[1,0,1],’style’,’infinite’);Materialshiny;shadinginterp;holdon;plot3(1,0,1,'p');text(1,0,1,'light');2023/7/2865clear2023/7/30665.5.4圖形的裁剪處理2023/7/28665.5.4圖形的裁剪處理2023/7/3067裁減修飾p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);surf(p)2023/7/2867裁減修飾2023/7/3068p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);mesh(peaks,p)2023/7/2868p=peaks;2023/7/3069例5-25繪制三維曲面圖,并進行插值著色處

理,裁掉圖中x和y都小于0部分。

[x,y]=meshgrid(-5:0.1:5);z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);surf(x,y,z);shadinginterp;%pause(5)%程序暫停figurei=find(x<=0&y<=0);z1=z;z1(i)=NaN;surf(x,y,z1);shadinginterp;2023/7/2869例5-25繪制三維曲面圖,并進行插值2023/7/3070其它修飾:

a.水線修飾(waterfall)waterfall(peaks(30))

2023/7/2870其它修飾:2023/7/3071b.等高線修飾二維contour(Z,n)--------繪制n條等高線C=contourc(Z,n)------計算n條等高線的坐標Clable(c)------給等高線加標注例、在二維平面上繪制peaks函數(shù)的10條等高線contour(peaks,10);C=contourc(peaks,10);clabel(C)2023/7/2871b.等高線修飾2023/7/30722023/7/28722023/7/3073contour3(peaks,20)2023/7/2873contour3(peaks,20)2023/7/3074subplot(1,2,1);[X,Y,Z]=peaks(30);waterfall(X,Y,Z)xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');subplot(1,2,2);contour3(X,Y,Z,12,'r');%其中12代表高度的等級數(shù)xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');例繪制多峰函數(shù)的瀑布圖和等高線圖。2023/7/2874subplot(1,2,1);例繪制2023/7/3075偽彩色圖pcolor——

常用于以二維平面圖表現(xiàn)三維圖形的效果,用顏色表示三維圖形的高度。z=peaks(30)pcolor(z)2023/7/2875偽彩色圖pcolor——常用于以二2023/7/30765.6圖像處理與動畫制作5.6.1圖像處理

1.imread和imwrite函數(shù)

imread和imwrite函數(shù)分別用于將圖像文件讀入MATLAB工作空間,以及將圖像數(shù)據(jù)和色圖數(shù)據(jù)一起寫入一定格式的圖像文件。MATLAB支持多種圖像文件格式,如.bmp、.jpg、.jpeg、.tif等。2023/7/28765.6圖像處理與動畫制作2023/7/30772.image和imagesc函數(shù)

這兩個函數(shù)用于圖像顯示。為了保證圖像的顯示效果,一般還應使用colormap函數(shù)設置圖像色圖。例5-26有一圖像文件flower.jpg,在圖形窗口

顯示該圖像。2023/7/28772.image和imagesc函數(shù)例2023/7/3078[x,cmap]=imread('flower.jpg');%讀取圖像的數(shù)據(jù)陣和色圖陣image(x);%顯示圖像colormap(cmap);%色彩映射axisimageoff%保持寬高比并取消坐標軸2023/7/2878[x,cmap]=imread('fl2023/7/3079

5.6.2動畫制作

MATLAB提供getframe、moviein和movie函數(shù)進行動畫制作。

1.moviein函數(shù)

moviein(n)函數(shù)用來建立一個足夠大的n列矩陣。該矩陣用來保存n幅畫面的數(shù)據(jù),以備播放。之所以要事先建立一個大矩陣,是為了提高程序運行速度。2023/7/28795.6.2動畫制作2023/7/30802.getframe函數(shù)

getframe函數(shù)可截取一幅畫面信息(稱為動畫中的一幀),一幅畫面信息形成一個很大的列向量。顯然,保存n幅圖面就需一個大矩陣。m(:,i)=getframe3.movie函數(shù)

movie(m,n)函數(shù)播放由矩陣m所定義的畫面n次,缺省時播放一次。例5-27繪制了peaks函數(shù)曲面并且將它繞z軸旋轉。2023/7/28802.getframe函數(shù)例5-272023/7/3081[X,Y,Z]=peaks(30);surf(X,Y,Z)axis([-3,3,-3,3,-10,10])axisoff;shadinginterp;colormap(hot);m=moviein(20);%建立一個20列大矩陣fori=1:20view(-37.5+24*(i-1),30)%改變視點m(:,i)=getframe;%將圖形保存到m矩陣endmovie(m,2);%播放畫面2023/7/2881[X,Y,Z]=peaks(30);2023/7/3082步驟

指令例子1數(shù)據(jù)準備產(chǎn)生自變量向量產(chǎn)生相應的函數(shù)向量t=pi*(0:100)/100y=sin(t).*sin(9*t)2選定圖形窗及子圖位置figure(n)指定子圖形的窗號figure(n)表示第幾幅圖形

subplot(2,2,3),2×2圖的第三幅圖

subplot(1,3,2),1×3圖的第2幅圖

3調用高層繪圖指令plot(t,y,‘b-’)圖形用藍色線條4圖形注釋圖名、坐標名、文字說明title(‘

調制波形’)。xlabel(‘t’)legend(‘’)圖例,text(’’)文字說明5圖形的精細修飾,利用工具或命令set(h,’MarkerSize’,10)6打印和貼圖在圖形編輯狀態(tài)打印或進行貼圖1.二維圖形繪制的一般步驟2023/7/2882步驟2023/7/3083步驟指令例子1數(shù)據(jù)準備:產(chǎn)生自變量向量產(chǎn)生相應的函數(shù)向量t=pi*(0:100)/100x=f1(t);y=f2(t)

z=f3(x,y)2選定圖形窗及子圖位置figure(n)指定子圖形的窗號figure(n)表示第幾幅圖形

subplot(2,2,3),2×2圖的第三幅圖

subplot(1,3,2),1×3圖的第2幅圖

3調用高層繪圖指令plot3(t,y,z,‘b-’)圖形用藍色線條

mesh(x,y,z),surf(x,y,z)4著色、明暗、燈光等colormap,shading,light5視角view6圖形的精細修飾,利用工具或命令set(h,’MarkerSize’,10)2.三維圖形繪制的一般步驟2023/7/2883步驟指令例子1數(shù)據(jù)準備:t=p2023/7/30843.繪制圖上圖

有時為了需要,需要在圖上畫圖,可能是為了局部放大,或其他目的。例題:Exercise7.m2023/7/28843.繪制圖上圖有時為了需要,需2023/7/3085figure;t=0.1:.1:2*pi;y=sin(t)+exp(t);plot(t,y,'--');title('繪制底圖')axes('position',[0.25,0.45,0.4,0.3])%還可省略此語句以下所有語句,在圖形上直接利用Insert下的axis命令進行編輯,繼續(xù)在命令窗口輸入相應的程序。%definethelocationoftheaxeswithinthefigurewindow;%[left,bottom,width,height],Theleftandbottomelementsofthisvectordefinethedistance%fromthelowerleftcornerofthefiguretothelowerleftcorneroftherectangle.%Thewidthandheightelementsdefinethedimensionsoftherectangle.%YouspecifythesevaluesinunitsdeterminedbytheUnitsproperty.%Bydefa

溫馨提示

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

評論

0/150

提交評論