您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第5章 MATLAB图形绘制
2020年2月22日星期六1第5章MATLAB图形绘制•学习目标–掌握二维图形和三维图形的绘制;–学会对三维图形进行精细处理;–了解图像和动画之间的关系,学会用MATLAB制作简单动画;–学会MATLAB的底层绘图操作。2020年2月22日星期六2第5章MATLAB图形绘制2020年2月22日星期六35.1二维图形的绘制•如果了解了MATLAB的矩阵和向量的概念与输入方法之后,那么MATLAB的二维绘图就比较简单了。•例如,有两个长度的向量x和y,则用plot(x,y)就可以自动绘制出二维图形来。•如果打开了图形窗口,则在最近打开的图形窗口中绘制此图;如果未打开图形窗口,则打开一个新的窗口绘图。2020年2月22日星期六4•【例5.1】在MATLAB绘图窗口绘制正弦曲线的图形。•解在MATLAB命令提示符下输入:t=0:.1:2*pi;y=sin(t);plot(t,y)•这样立即可以得出如图5-1所示的二维图。2020年2月22日星期六52020年2月22日星期六6•由MATLAB绘制的二维图形可以由下面一些命令简单地修饰。如:–grid–xlabel('字符串')–ylabel('字符串')–title('字符串')2020年2月22日星期六72020年2月22日星期六8•绘图工作的保存:绘图工作的保存非常重要,MATLAB中绘图结果的保存最简单的方法是通过文件菜单的几个保存命令来保存。–(1)Save(保存)命令,可以将当前绘图区的绘图结果保存为二进制的fig文件,它只能由MATLAB打开。–(2)Saveas…(另存为)命令,可以设置保存文件格式,如可以设置为常用的jpg、bmp、png、tif等格式,保存为这些格式的图形,可以用各种常用的图像处理软件,如Photoshop等进行编辑和修饰。–(3)GenerateM-File…(产生M-代码)命令,可以将当前绘图保存为MATLAB函数M文件,从而可以重复绘图。需要注意的是,产生的M-代码中不保存当前绘图采用的数据集。2020年2月22日星期六95.1.1绘制二维曲线的基本函数•MATLAB绘制二维曲线的主要函数是plot()函数,它的基本绘图原理是描点绘图。•此外MATLAB还提供了plotyy()和ezplot()等函数来绘制二维曲线。2020年2月22日星期六101.plot()函数•plot()函数的基本调用格式为:plot(x,y)•其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。2020年2月22日星期六11•【例5.2】在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-3所示的曲线。2020年2月22日星期六122020年2月22日星期六13•【例5.3】某工厂2009年各月总产值(单位:万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。•解在命令提示符下输入下列内容:p=[22,60,88,95,56,23,9,10,14,81,56,23];plot(p)•可以得到如图5-4所示的曲线。2020年2月22日星期六142020年2月22日星期六15•2.含多个输入参数的plot()函数–含多个输入参数的plot()函数调用格式为:–plot(x1,y1,x2,y2,…,xn,yn,Linspec,linwidth)•3.含选项的plot()函数–含选项的plot()函数调用格式为:–plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)2020年2月22日星期六16•【例5.4】用不同线型和颜色在同一坐标内绘制曲线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');•可以得到如图5-5所示的曲线。2020年2月22日星期六172020年2月22日星期六184.标记大小•标记大小用来指定标记符号的大小尺寸,取值为整数(单位为像素);标记面填充颜色指定用于填充标记符面的颜色;标记周边颜色指定标记符颜色或标记符(小圆圈、正方形、菱形、正五角星、正六角星和4个方向三角形)周边线条的颜色。•在所有的能产生线条的命令中,参数linesepc可以定义线条的3个属性:线型、标记符、颜色。对线条的上述属性可用字符串来定义,如:plot(x,y,'--*R)。其中定义符和字符串可以任意组合。2020年2月22日星期六195.双纵坐标函数plotyy()•plotyy()函数能把不同量纲、不同数量级的函数值的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)•其中x1、y1对应一条曲线,x2、y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1、y1数据对,右纵坐标用于x2、y2数据对。2020年2月22日星期六20•【例5.5】用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2πx)及曲线y2=1.5e-0.1xsinx。•解在命令提示符下输入下列内容:•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-6所示的曲线。2020年2月22日星期六212020年2月22日星期六225.1.2绘制图形的辅助操作•MATLAB提供了图形绘制中的许多辅助操作,用户可以对MATLAB绘制的图形添加图形标注,使用axis()函数控制图形的显示范围,对图形窗口进行分割等。2020年2月22日星期六231.图形标注•有关图形标注函数的调用格式为:–title(图形名称)–xlabel(x轴说明)–ylabel(y轴说明)–text(x,y,图形说明)–legend(图例1,图例2,…)2020年2月22日星期六24•【例5.6】举例说明如何为图形添加图形标注。•解在命令提示符下输入下列内容: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');2020年2月22日星期六25title('曲线及其包络线');xlabel('independentvariableX');ylabel('independentvariableY');text(2.8,0.5,'包络线');text(0.5,0.5,'曲线y');text(1.4,0.1,'离散数据点');legend('包络线','包络线','曲线y','离散数据点')•得到的图形效果如图5-7所示。2020年2月22日星期六262020年2月22日星期六272.axis()函数•axis()函数的调用格式为:axis([xminxmaxyminymaxzminzmax])•axis()函数功能丰富,常用的用法还有:–①axisequal:表示纵、横坐标轴采用等长刻度。–②axissquare:表示产生正方形坐标系(缺省为矩形)。–③axisauto:表示使用缺省设置。–④axisoff:表示取消坐标轴。–⑤axison:表示显示坐标轴。–⑥gridon/off命令:控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。–⑦boxon/off命令:控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。2020年2月22日星期六28•【例5.7】用图形保持功能在同一坐标内绘制曲线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');gridon;boxoff;holdoff;•最终得到的图形如图5-8所示。2020年2月22日星期六292020年2月22日星期六303.图形窗口的分割subplot()•subplot()函数的调用格式为:subplot(m,n,p)•【例5.8】在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。•解在命令提示符下输入下列内容,注意同一行中间的分号。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]);2020年2月22日星期六31subplot(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]);•得到的图形效果如图5-9所示。2020年2月22日星期六322020年2月22日星期六335.1.3绘制二维图形的其他函数•除了二维曲线外,MATLAB还提供了绘制其他二维图像的许多函数,可以绘制条形图、阶梯图、杆图、填充图和极坐标图、对数坐标图等二维图形.2020年2月22日星期六341.直角坐标图•在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:–bar(x,y,选项)–stairs(x,y,选项)–stem(x,y,选项)–fill(x1,y1,选项1,x2,y2,选项2,…)2020年2月22日星期六352.极坐标图•polar()函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项)•其中,theta为极坐标极角,rho为极坐标矢径,选项的内容与plot()函数相似。2020年2月22日星期六363.对数坐标图形•MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:–semilogx(x1,y1,选项1,x2,y2,选项2,…)–semilogy(x1,y1,选项1,x2,y2,选项2,…)–loglog(x1,y1,选项1,x2,y2,选项2,…)2020年2月22日星期六374.对函数自适应采样的绘图函数fplot()•fplot()函数的调用格式为:–fplot(fname,lims,tol,选项)•【例5.12】用fplot()函数绘制f(x)=cos(tan(πx))的曲线。•解先建立函数文件exm4_1.m,在M文件编辑器中输入下列内容。M文件编辑的打开方式为在命令提示符下输入edit。function
本文标题:第5章 MATLAB图形绘制
链接地址:https://www.777doc.com/doc-3863571 .html