您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 中南大学MATLAB课件(第5章MATLAB绘图).
第5章MATLAB绘图5.1二维图形5.2三维图形5.3三维图形的精细处理5.4隐函数绘图5.5低层绘图操作5.6光照和材质处理5.7图像显示与动画制作5.1二维图形5.1.1绘制二维曲线的基本函数1.plot函数的基本用法plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。x(1)x(2)…x(i)…x(n)y(1)y(2)…y(i)…y(n)在平面上绘制图形,采用不同的坐标系。在平面直角坐标系xoy内,用点(x(1),y(1)),(x(2),y(2)),(x(i),y(i)),…,(x(n),y(n))绘制曲线。xy例5.1在0≤X≤2区间内,绘制曲线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绘制参数方程曲线。2cos3tsinxttytt,程序如下:t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).*sin(t);plot(x,y);说明:(1)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。(多条曲线)x=linspace(0,2*pi,100);y=[sin(x);cos(x)];plot(x,y)(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(多条曲线)(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x)。X是实向量时:等效于plot(1:length(x),x)X是实矩阵时:各列X是复数向量时:各元素的实部、虚部2.含多个输入参数的plot函数含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)3.含选项的plot函数含选项的plot函数调用格式为:plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)选项说明曲线的线型、颜色或标记符号例5.3用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。程序如下: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,'g:',x,y2,'b--',x1,y3,'rp');01234567-2-1.5-1-0.500.511.524.双纵坐标函数plotyyplotyy函数是MATLAB7新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)其中x1-y1对应一条曲线,x2-y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1-y1数据对,右纵坐标用于x2-y2数据对。例5.4用不同标度在同一坐标内绘制曲线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);0246810-1010246810-2025.1.2绘制图形的辅助操作1.图形标注有关图形标注函数的调用格式为:title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,…)2.坐标控制函数的调用格式为:axis([xminxmaxyminymaxzminzmax])axis函数功能丰富,常用的用法还有:axisequal纵、横坐标轴采用等长刻度axissquare产生正方形坐标系(缺省为矩形)axisauto使用缺省设置axisoff取消坐标轴axison显示坐标轴gridon/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。boxon/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。例5.5绘制分段函数曲线并添加图形标注。04246()5/26818xxxfxxxx,,,,2242011,120:0.5:2.521,22.5360ttztttttPt,,其中t=0:0.05:2.5;z4=t.^2.*(0=t&t1)+(t.^2-1).*(1=t&t2)+(t.^2-2*t+1).*(2=t&t3);plot(t,z4);例5.5绘制分段函数曲线并添加图形标注。程序如下: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])%设置坐标轴范围title('分段函数曲线');%加图形标题xlabel('VariableX');%加X轴说明ylabel('VariableY');%加Y轴说明text(2,1.3,‘y=x^{1/2}’);%在指定位置%添加图形说明text(4.5,1.9,'y=2');text(7.3,1.5,'y=5-x/2');text(8.5,0.9,'y=1');04246()5/26818xxxfxxxx,,,,演示在绘图窗口直接修改操作ifx04y=[y,sqrt(x0)];elseifx06y=[y,2];elseifx08y=[y,5-x0/2];elsey=[y,1];end3.图形保持一般情况下,绘图命令每执行一次就刷新当前图形窗口,图形窗口原有图形将不复存在。若希望在已存在的图形上再继续添加新的图形,可使用图形保持命令hold。holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。例5.6用图形保持功能在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。程序如下: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]);%设置坐标holdon;%设置图形保持状态plot(x,y2,'k');legend('包络线','包络线','曲线y');%加图例holdoff;%关闭图形保持grid%网格线控制4.图形窗口的分割图形窗口的分割成多个绘图区,在各绘图区分别绘制图形。subplot函数的调用格式为:subplot(m,n,p)例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个区中的1号区stairs(x,y);title('sin(x)-1');axis([0,2*pi,-1,1]);subplot(2,1,2);%选择2×1个区中的2号区stem(x,y);title('sin(x)-2');axis([0,2*pi,-1,1]);subplot(4,4,3);%选择4×4个区中的3号区plot(x,y);title('sin(x)');axis([0,2*pi,-1,1]);subplot(4,4,4);%选择4×4个区中的4号区plot(x,z);title('cos(x)');axis([0,2*pi,-1,1]);subplot(4,4,7);%选择4×4个区中的7号区plot(x,t);title('tangent(x)');axis([0,2*pi,-40,40]);subplot(4,4,8);%选择4×4个区中的8号区plot(x,ct);title('cotangent(x)');axis([0,2*pi,-40,40]);5.1.3绘制二维图形的其他函数1.其他形式的线性直角坐标图在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项)stairs(x,y,选项)stem(x,y,选项)fill(x1,y1,选项1,x2,y2,选项2,…)例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]);2.极坐标图polar函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项)其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。例5.9绘制ρ=sin(2θ)cos(2θ)的极坐标图。程序如下:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,'k');3.对数坐标图形MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:semilogx(x1,y1,选项1,x2,y2,选项2,…)semilogy(x1,y1,选项1,x2,y2,选项2,…)loglog(x1,y1,选项1,x2,y2,选项2,…)例5.10绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。例5.10绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。程序如下: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('semilo
本文标题:中南大学MATLAB课件(第5章MATLAB绘图).
链接地址:https://www.777doc.com/doc-2761172 .html