第05章-MATLAB繪圖-例題源程序_第1頁
第05章-MATLAB繪圖-例題源程序_第2頁
第05章-MATLAB繪圖-例題源程序_第3頁
第05章-MATLAB繪圖-例題源程序_第4頁
第05章-MATLAB繪圖-例題源程序_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章MATLAB繪圖例5.1在0≤x≤2區(qū)間內(nèi),繪制曲線y=2e-0.5xsin(2πx)。x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)例5.2繪制曲線t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).*sin(t);plot(x,y);例5.3用不同線型和顏色在同一坐標內(nèi)繪制曲線y=2e-0.5xsin(2πx)及其包絡(luò)線。x=(0:pi/100:2*pi)';y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');例5.4用不同標度在同一坐標內(nèi)繪制曲線y1=e-0.5xsin(2πx)及曲線y2=1.5e-0.1xsin(x)。x1=0:pi/100:2*pi;x2=0:pi/100:3*pi;y1=exp(-0.5*x1).*sin(2*pi*x1);y2=1.5*exp(-0.1*x2).*sin(x2);plotyy(x1,y1,x2,y2);例5.5繪制分段函數(shù)曲線并添加圖形標注。x=linspace(0,10,100);y=[];forx0=xifx0>=8y=[y,1];elseifx0>=6y=[y,5-x0/2];elseifx0>=4y=[y,2];elseifx0>=0y=[y,sqrt(x0)];endendplot(x,y)axis([01002.5])%設(shè)置坐標軸%加圖形標題title('分段函數(shù)曲線');xlabel('VariableX');ylabel('VariableY');text(2,1.3,'y=x^{1/2}');%加X軸說明%加Y軸說明%在指定位置添加圖形說明text(4.5,1.9,'y=2');text(7.3,1.5,'y=5-x/2');text(8.5,0.9,'y=1');例5.6用圖形保持功能在同一坐標內(nèi)繪制曲線y=2e-0.5xsin(2πx)及其包絡(luò)線。x=(0:pi/100:2*pi)';y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y1,'b:');axis([0,2*pi,-2,2]);%設(shè)置坐標holdon;%設(shè)置圖形保持狀態(tài)plot(x,y2,'k');legend('包絡(luò)線','包絡(luò)線','曲線y');%加圖例holdoff;grid%關(guān)閉圖形保持%網(wǎng)格線控制例5.7在一個圖形窗口中以子圖形式同時繪制正弦、余弦、正切、余切曲線。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,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('cotangent(x)');axis([0,2*pi,-40,40]);請看下面的程序。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);%選擇2×2個區(qū)中的1號區(qū)stairs(x,y);title('sin(x)-1');axis([0,2*pi,-1,1]);subplot(2,1,2);%選擇2×1個區(qū)中的2號區(qū)stem(x,y);title('sin(x)-2');axis([0,2*pi,-1,1]);subplot(4,4,3);%選擇4×4個區(qū)中的3號區(qū)plot(x,y);title('sin(x)');axis([0,2*pi,-1,1]);subplot(4,4,4);%選擇4×4個區(qū)中的4號區(qū)plot(x,z);title('cos(x)');axis([0,2*pi,-1,1]);subplot(4,4,7);%選擇4×4個區(qū)中的7號區(qū)plot(x,t);title('tangent(x)');axis([0,2*pi,-40,40]);subplot(4,4,8);%選擇4×4個區(qū)中的8號區(qū)plot(x,ct);title('cotangent(x)');axis([0,2*pi,-40,40]);例5.8分別以條形圖、填充圖、階梯圖和桿圖形式繪制曲線y=2e-0.5x。x=0:0.35:7;y=2*exp(-0.5*x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,0,2]);subplot(2,2,2);fill(x,y,'r');title('fill(x,y,''r'')');axis([0,7,0,2]);subplot(2,2,3);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,0,2]);subplot(2,2,4);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,0,2]);例5.9繪制ρ=sin(2θ)cos(2θ)的極坐標圖。theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,'k');例5.10繪制y=10x2的對數(shù)坐標圖并與直角線性坐標圖進行比較。x=0:0.1:10;y=10*x.*x;subplot(2,2,1);plot(x,y);title('plot(x,y)');gridon;subplot(2,2,2);semilogx(x,y);title('semilogx(x,y)');gridon;subplot(2,2,3);semilogy(x,y);title('semilogy(x,y)');gridon;subplot(2,2,4);loglog(x,y);title('loglog(x,y)');gridon;例5.11用fplot函數(shù)繪制f(x)=cos(tan(πx))的曲線。先建立函數(shù)文件myf.m:functiony=myf(x)y=cos(tan(pi*x));再用fplot函數(shù)繪制myf.m函數(shù)的曲線:fplot('myf',[-0.4,1.4],1e-4)得到如圖5.12所示曲線。從圖5.12中可看出,在x=0.5附近采樣點十分密集。也可以直接用fplot函數(shù)繪制f(x)=cos(tan(πx))的曲線:fplot('cos(tan(pi*x))',[-0.4,1.4],1e-4)例5.12繪制圖形:(1)某次考試優(yōu)秀、良好、中等、及格、不及格的人數(shù)分別為:7,17,23,19,5,試用餅圖作成績統(tǒng)計分析。(2)繪制復(fù)數(shù)的相量圖:3+2i、5.5-i和-1.5+5i。subplot(1,2,1);pie([7,17,23,19,5]);title('餅圖');legend('優(yōu)秀','良好','中等','及格','不及格');subplot(1,2,2);compass([3+2i,5.5-i,-1.5+5i]);title('相量圖');例5.13繪制空間曲線:t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(2)*sin(t);z=-4*sqrt(2)*sin(t);plot3(x,y,z,'p');title('Linein3-DSpace');text(0,0,0,'origin');xlabel('X'),ylabel('Y'),zlabel('Z');grid;例5.14已知6<x<30,15<y<36,求不定方程2x+5y=126的整數(shù)解。x=7:29;y=16:35;[x,y]=meshgrid(x,y);%在[7,29]×[16,35]區(qū)域生成網(wǎng)格坐標z=2*x+5*y;k=find(z==126);%找出解的位置x(k)',y(k)'%輸出對應(yīng)位置的x,y即方程的解例5.15用三維曲面圖表現(xiàn)函數(shù)z=sin(y)cos(x)。程序1:x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x);mesh(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('mesh');程序2:x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x);surf(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('surf');程序3:x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x);plot3(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('plot3-1');grid;例5.16繪制兩個直徑相等的圓管的相交圖形。%兩個等直徑圓管的交線m=30;z=1.2*(0:m)/m;r=ones(size(z));theta=(0:m)/m*2*pi;x1=r'*cos(theta);y1=r'*sin(theta);%生成第一個圓管的坐標矩陣z1=z'*ones(1,m+1);x=(-m:2:m)/m;x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第二個圓管的坐標矩陣z2=r'*sin(theta);surf(x1,y1,z1);axisequal,axisoffholdon%繪制豎立的圓管%繪制平放的圓管surf(x2,y2,z2);axisequal,axisofftitle('兩個等直徑圓管的交線');holdoff例5.17分析由函數(shù)z=x2-2y2構(gòu)成的曲面形狀及與平面z=a的交線。[x,y]=meshgrid(-10:0.2:10);z1=(x.^2-2*y.^2)+eps;a=input('a=?');%第1個曲面%第2個曲面z2=a*ones(size(x));subplot(1,2,1);mesh(x,y,z1);holdon;mesh(x,y,z2);%分別畫出兩個曲面v=[-10,10,-10,10,-100,100];axis(v);grid;%第1子圖的坐標設(shè)置holdoff;r0=abs(z1-z2)<=1;%求兩曲面z坐標差小于1的點xx=r0.*x;yy=r0.*y;zz=r0.*z2;%求這些點上的x,y,z坐標,即交線坐標subplot(1,2,2);plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'*');%在第2子圖畫出交線axis(v);grid;%第2子圖的坐標設(shè)置例5.18在xy平面內(nèi)選擇區(qū)域[-8,8]×[-8,8],繪制函數(shù)的4種三維曲面圖。[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);subplot(2,2,1);meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,2);meshz(x,y,z);title('meshz(x,y,z)')subplot(2,2,3);surfc(x,y,z)title('surfc(x,y,z)')subplot(2,2,4);surfl(x,y,z)title('surfl(x,y,z)')例5.19繪制標準三維曲面圖形。t=0:pi/20:2*pi;[x,y,z]=cylinder(2+sin(t),30);subplot(1,3,1);surf(x,y,z);subplot(1,3,2);[x,y,z]=sphere;surf(x,y,z);subplot(1,3,3);[x,y,z]=peaks(30);meshz(x,y,z);例5.20繪制三維圖形:(1)繪制魔方陣的三維條形圖。(2)以三維桿圖形式繪制曲線y=2sin(x)。(3)已知x=[2347,1827,2043,3025],繪制三維餅圖。(4)用隨機的頂點坐標值畫出五個黃色三角形。subplot(2,2,1);bar3(magic(4))subplot(2,2,2);y=2*sin(0:pi/10:2*pi);stem3(y);subplot(2,2,3);pie3([2347,1827,2043,3025]);subplot(2,2,4);fill3(rand(3,5),rand(3,5),rand(3,5),'y')例5.21繪制多峰函數(shù)的瀑布圖和等高線圖。subplot(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,'k');%其中12代表高度的等級數(shù)xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');例5.22從不同視點繪制多峰函數(shù)曲面。subplot(2,2,1);mesh(peaks);view(-37.5,30);%指定子圖1的視點title('azimuth=-37.5,elevation=30')subplot(2,2,2);mesh(peaks);view(0,90);%指定子圖2的視點title('azimuth=0,elevation=90')subplot(2,2,3);mesh(peaks);view(90,0);%指定子圖3的視點title('azimuth=90,elevation=0')subplot(2,2,4);mesh(peaks);view(-7,-10);%指定子圖4的視點title('azimuth=-7,elevation=-10')例5.233種圖形著色方式的效果展示。z=peaks(20);colormap(copper);subplot(1,3,1);surf(z);subplot(1,3,2);surf(z);shadingflat;subplot(1,3,3);surf(z);shadinginterp;例5.24繪制兩個球面,其中一個球在另一個球里面,將外面的球裁掉一部分,使得能看見里面的球。[x,y,z]=sphere(20);%生成外面的大球z1=z;z1(:,1:4)=NaN;%將大球裁掉一部分c1=ones(size(z1));surf(3*x,3*y,3*z1,c1);%生成里面的小球holdonz2=z;c2=2*ones(size(z2));c2(:,1:4)=3*ones(size(c2(:,1:4)));surf(1.5*x,1.5*y,1.5*z2,c2);colormap([0,1,0;0.5,0,0;1,0,0]);gridonholdoff例5.25隱函數(shù)繪圖應(yīng)用舉例。subplot(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.26在同一坐標下畫紅、綠兩根不同曲線,希望獲得綠色曲線的句柄,并對其進行設(shè)置。x=0:pi/50:2*pi;y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');H=get(gca,'Children');%獲取兩曲線句柄向量Hfork=1:length(H)ifget(H(k),'Color')==[010]%[010]代表綠色Hg=H(k);end%獲取綠色線條句柄endpause%便于觀察設(shè)置效果set(Hg,'LineStyle',':','Marker','p');%對綠色曲線進行設(shè)置例5.27建立一個圖形窗口。該圖形窗口沒有菜單條,標題名稱為“圖形窗口示例”,起始于屏幕左下角、寬度和高度分別為300像素點和150像素點,背景顏色為綠色,且當(dāng)用戶從鍵盤按下任意一個鍵時,將顯示“Hello,KeyboardKeyPressed.”字樣。hf=figure('Color',[0,1,0],'Position',[1,1,300,150],...'Name','圖形窗口示例','NumberTitle','off','MenuBar','none',...'KeyPressFcn','disp(''Hello,KeyboardKeyPressed.'')');例5.28分別在4個不同的圖形窗口繪制出正弦、余弦、正切、余切曲線。要求先建立一個圖形窗口并繪圖,然后每關(guān)閉一個再建立下一個,直到建立第4個窗口并繪圖。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=tan(x);ct=1./(t+eps);%命令組待用C4=['figure(''Name'',''cotangent(x)'',''NumberTitle'',',...'''off'');plot(x,ct);axis([0,2*pi,-40,40]);'];C3=['figure(''Name'',''tangent(x)'',''DeleteFcn'',C4,',...'''NumberTitle'',''off'');plot(x,t);axis([0,2*pi,-40,40]);'];C2=['figure(''Name'',''cos(x)'',''DeleteFcn'',C3,',...'''NumberTitle'',''off'');plot(x,z);axis([0,2*pi,-1,1]);'];%先創(chuàng)建1個圖形窗口并繪制曲線figure('Name','sin(x)','DeleteFcn',C2,'NumberTitle','off');plot(x,y);axis([0,2*pi,-1,1]);例5.29利用坐標軸對象實現(xiàn)圖形窗口的任意分割。clf;%清圖形窗口x=linspace(0,2*pi,20);y=sin(x);axes('Position',[0.2,0.2,0.2,0.7],'GridLineStyle','-.');plot(y,x);title('sin(x)-1');axes('Position',[0.4,0.5,0.2,0.1]);stairs(x,y);title('sin(x)-2');axes('Position',[0.55,0.6,0.25,0.3]);stem(x,y);title('sin(x)-3');axes('Position',[0.55,0.2,0.25,0.3]);[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);mesh(x,y,z);title('mesh(x,y,z)');例5.30利用曲線對象繪制曲線和。t=0:pi/100:pi/2;y1=sin(2*pi*t);y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);figh=figure;axes('GridLineStyle',':','XLim',[0,pi/2],'YLim',[-1,1]);line('XData',t,'YData',y1,'LineWidth',1);line(t,y2);gridon例5.31利用曲線對象繪制theta=-pi:.1:pi;和并利用文字對象完成標注。y1=sin(theta);y2=cos(theta);h=line(theta,y1,'LineStyle',':','Color','g');line(theta,y2,'LineStyle','--','Color','b');xlabel('-\pi\leq\theta\leq\pi')ylabel('sin(\theta)')title('Plotofsin(\theta)')text(-pi/4,sin(-pi/4),'\leftarrowsin(-\pi\div4)','FontSize',12)%改變曲線1的顏色和線寬set(h,'Color','r','LineWidth',2)例5.32利用曲面對象繪制三維曲面z=sin(y)cos(x)。x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x);axes('view',[-37.5,30]);hs=surface(x,y,z,'FaceColor','w','EdgeColor','flat');gridon;xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('mesh-surf');pause;set(hs,'FaceColor','flat');例5.33繪制兩個等直徑圓柱體的交線。作圖時,常常需要改變曲線的屬性,例如線型、線寬、顏色等。如果對多根曲線做同樣的操作可能是很煩瑣的,下面的函數(shù)可以簡化操作。%PLINE繪制給定點和屬性的直線。%pline(P,w,c,s)繪制兩點間的直線%直線的坐標在矩陣P中描述,寬度是w,顏色是c,線型是s%矩陣P的格式%%[x1x2…xny1y2…yn]%其中x1,y1是坐標的第一個點,其余坐標點類推。三維曲線相應(yīng)作修改functionpline(P,w,c,s)[m,n]=size(P);ifm==2%二維曲線H1=plot(P(1,:),P(2,:));set(H1,'Linewidth',w,'Color',c,'LineStyle',s)elseifm==3%三維曲線H2=plot3(P(1,:),P(2,:),P(3,:));set(H1,'LineWidth',w,'Color',c,'LineStyle',s)elseerror('InputargumentPhasinadequatedimensions')end下面是繪制兩個等直徑圓柱體管交線的程序。r1=5;%第一個圓柱體的半徑%第二個圓柱體的半徑r2=5;%前視圖%開始做水平圓柱P0=[0;0];P1=[-5;5];P2=[-13;5];P3=[-13;-5];P4=[13;-5];P5=[13;5];P6=[5;5];patch([P0(1),P6(1),P5(1),P4(1),P3(1),P2(1),P1(1)],...[P0(2),P6(2),P5(2),P4(2),P3(2),P2(2),P1(2)],'y')axis([-1530-2718]),axisequal,axisoffholdon%開始做垂直圓柱P7=[5;15];P8=[-5;15];patch([P0(1),P6(1),P5(1),P4(1),P3(1),P2(1),P1(1)],...[P0(2),P6(2),P5(2),P4(2),P3(2),P2(2),P1(2)],'g')pline([P0P1P2P3P4P5P6P0],2.5,'k','-')%設(shè)置水平圓柱的外圍線pline([P6P7P8P1],2.5,'k','-')%設(shè)置垂直圓柱的外圍線%側(cè)視圖t=0:pi/90:2*pi;%水平圓柱xc=23+r1*cos(t);zc=r1*sin(t);patch(xc,zc,'y')%開始做垂直圓柱z1=0;P11=[28;z1];P12=[28;15];P13=[18;15];P14=[18;z1];%定義交線ti=0:pi/90:pi;xi2=23+r1*cos(ti);zi2=r1*sin(ti);%垂直圓柱patch([xi2,P11(1),P12(1),P13(1),P14(1)],...[zi2,P11(2),P12(2),P13(2),P14(2)],'g')pline([xc;zc],2.5,'k','-')pline([P11P12P13P14],2,'k','-')ha=plot([-1429],[00],'k-.');set(ha,'LineWidth',1.5)ha=plot([00],[-616],'k-.');%側(cè)視圖的垂直軸%水平軸set(ha,'LineWidth',1.5)ha=plot([2323],[-616],'k-.');%側(cè)視圖的垂直軸set(ha,'LineWidth',1.5)ht=title('Intersectionofperpendicular,equal-diametercylinders');set(ht,'FontSize',14)t1='horizontalcylinder:ht=text(-12,-10,t1);set(ht,'FontSize',14)t2='verticalcylinder:ht=text(-12,-15,t2);set(ht,'FontSize',14)y^2+z^2=r^2';x^2+y^2=r^2';ht=text(-12,-20,'projectionofintersection:z^2-x^2=0');set(ht,'FontSize',14)holdoff例5.34在同一個圖形窗口中創(chuàng)建矩形、圓角矩形、橢圓和圓各一個,并使用了不同的線型和線寬。subplot(2,2,1);rectangle('Position',[2,3,25,15],'LineWidth',3);subplot(2,2,2);rectangle('Position',[3,5,15,8],'Curvature',0.4,'LineWidth',2);subplot(2,2,3);rectangle('Position',[5,3,10,15],'Curvature',[1,1]);subplot(2,2,4);rectangle('Position',[5,3,10,10],'Curvature',[1,1],...'LineStyle','--','FaceColor','r');axisequal例5.35光照處理后的球面并觀察不同光照模式下的效果。[x,y,z]=sphere(20);subplot(1,4,1);surf(x,y,z);axisequal;shadinginterp;holdon;subplot(1,4,2);surf(x,y,z);axisequal;light('Position',[0,1,1]);shadinginterp;lightingflat;holdon;plot3(0,1,1,'p');text(0

溫馨提示

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

評論

0/150

提交評論