第四章 MATLAB绘图

上传人:biao****biao 文档编号:243063138 上传时间:2024-09-14 格式:PPT 页数:61 大小:1.97MB
返回 下载 相关 举报
第四章 MATLAB绘图_第1页
第1页 / 共61页
第四章 MATLAB绘图_第2页
第2页 / 共61页
第四章 MATLAB绘图_第3页
第3页 / 共61页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章,MATLAB,绘图,二维数据曲线图,其他二维图形,隐函数绘图,三维图形,图形修饰处理,图形处理与动画制作,4.1,二维数据曲线图,4.1.1,绘制单根二维曲线,plot,函数的基本调用格式为:,plot(x,y,),其中,x,和,y,为长度相同的向量,分别用于存储,x,坐标和,y,坐标数据。,例 在,0x2,区间内,绘制曲线,y=2e,-0.5x,cos(4x),程序如下:,x=0:pi/100:2*pi;,y=2*exp(-0.5*x).*cos(4*pi*x);,plot(x,y,),4.1,二维数据曲线图,例,绘制曲线。,程序如下:,t=0:0.1:2*pi;,x=t.*sin(3*t);,y=t.*,sin(t,).*,sin(t,);,plot(x,y,),4.1,二维数据曲线图,plot,函数最简单的调用格式是只包含一个输入参数:,plot(x,),;,在这种情况下,当,x,是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。,4.1,二维数据曲线图,4.1.2,绘制多根二维曲线,1,plot,函数的输入参数是矩阵形式,(1),当,x,是向量,,y,是有一维与,x,同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于,y,矩阵的另一维数,,x,被作为这些曲线共同的横坐标。,(2),当,x,y,是同维矩阵时,则以,x,y,对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,4.1,二维数据曲线图,(3),对只包含一个输入参数的,plot,函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。,当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。,4.1,二维数据曲线图,2,含多个输入参数的,plot,函数,调用格式为:,plot(x1,y1,x2,y2,xn,yn,),(1),当输入参数都为向量时,,x1,和,y1,,,x2,和,y2,,,,,xn,和,yn,分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。,(2),当输入参数有矩阵形式时,配对的,x,y,按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,4.1,二维数据曲线图,例,分析下列程序绘制的曲线。,x1=linspace(0,2*pi,100);,x2=linspace(0,3*pi,100);,x3=linspace(0,4*pi,100);,y1=sin(x1);,y2=1+sin(x2);,y3=2+sin(x3);,x=x1;x2;x3;,y=y1;y2;y3;,plot(x,y,),4.1,二维数据曲线图,3,具有两个纵坐标标度的图形,在,MATLAB,中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用,plotyy,绘图函数。调用格式为:,plotyy(x1,y1,x2,y2),其中,x1,y1,对应一条曲线,,x2,y2,对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于,x1,y1,数据对,右纵坐标用于,x2,y2,数据对。,4.1,二维数据曲线图,例,用不同标度在同一坐标内绘制曲线,y1=0.2e,-0.5x,cos(4x),y2=2e,-0.5x,cos(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),4.1,二维数据曲线图,4,图形保持,hold on,,,hold off,命令控制用于保持原有图形还是刷新原有图形,不带参数的,hold,命令在两种状态之间进行切换。,4.1,二维数据曲线图,例,采用图形保持,在同一坐标内绘制曲线,y1=0.2e,-0.5x,cos(4x),和,y2=2e,-0.5x,cos(x),。,程序如下:,x=0:pi/100:2*pi;,y1=0.2*exp(-0.5*x).*cos(4*pi*x);,plot(x,y1),hold on,y2=2*exp(-0.5*x).*,cos(pi,*x);,plot(x,y2);,hold off,4.1,二维数据曲线图,4.1.3,设置曲线样式,MATLAB,提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组合使用。例如,“,b-.”,表示蓝色点划线,“,y:d,”,表示黄色虚线并用菱形符标记数据点。当选项省略时,,MATLAB,规定,线型一律用实线,颜色将根据曲线的先后顺序依次。,要设置曲线样式可以在,plot,函数中加绘图选项,其调用格式为:,plot(x1,y1,选项,1,x2,y2,选项,2,xn,yn,选项,n),4.1,二维数据曲线图,例,在同一坐标内,分别用不同线型和颜色绘制曲线,y1=0.2e,-0.5x,cos(4x),和,y2=2e,-0.5x,cos(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,bp);,4.1.4,图形标注与坐标控制,1,图形标注,有关图形标注函数的调用格式为:,title(,图形名称,),xlabel(x,轴说明,),ylabel(y,轴说明,),text(x,y,图形说明,),legend(,图例,1,图例,2,),4.1,二维数据曲线图,函数中的说明文字,除使用标准的,ASCII,字符外,还可使用,LaTeX,格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。例如,,text(0.3,0.5,sin(omegat+beta),将得到标注效果,sin(t+,),。,4.1,二维数据曲线图,例,在,0x2,区间内,绘制曲线,y1=2e,-0.5x,和,y2=cos(4x),,并给图形添加图形标注。,程序如下:,x=0:pi/100:2*pi;,y1=2*exp(-0.5*x);,y2=cos(4*pi*x);,plot(x,y1,x,y2),title(x,from 0 to 2pi); %,加图形标题,xlabel(Variable,X); %,加,X,轴说明,ylabel(Variable,Y); %,加,Y,轴说明,text(0.8,1.5,曲线,y1=2e-0.5x); %,在指定位置添加图形说明,text(2.5,1.1,曲线,y2=cos(4pix);,legend(y1,y2) %,加图例,2,坐标控制,axis,函数的调用格式为:,axis(xmin,xmax,ymin,ymax,zmin,zmax,),axis,函数功能丰富,常用的格式还有:,axis equal,:纵、横坐标轴采用等长刻度。,axis square,:产生正方形坐标系,(,缺省为矩形,),。,axis auto,:使用缺省设置。,axis off,:取消坐标轴。,axis on,:显示坐标轴。,4.1,二维数据曲线图,给坐标加网格线用,grid,命令来控制。,grid on/off,命令控制是画还是不画网格线,不带参数的,grid,命令在两种状态之间进行切换。,给坐标加边框用,box,命令来控制。,box on/off,命令控制是加还是不加边框线,不带参数的,box,命令在两种状态之间进行切换。,4.1,二维数据曲线图,例,在同一坐标中可以绘制,3,个同心圆,并加坐标控制,程序如下:,t=0:0.01:2*pi;,x=,exp(i,*t);,y=x;2*x;3*x;,plot(y,),grid on; %,加网格线,box on; %,加坐标边框,axis equal %,坐标轴采用等刻度,4.1,二维数据曲线图,4.1.5,图形的可视化编辑,MATLAB,在图形窗口中提供了可视化的图形编辑工具,利用图形窗口菜单栏或工具栏中的有关命令可以完成对窗口中各种图形对象的编辑处理。,在图形窗口上有一个菜单栏和工具栏。菜单栏包含,File,、,Edit,、,View,、,Insert,、,Tools,、,Window,和,Help,共,7,个菜单项,工具栏包含,11,个命令按钮。,4.1,二维数据曲线图,4.1.6,函数自适应采样绘图,fplot(fname,lims,tol,选项,),其中,fname,为函数名,以字符串形式出现,,lims,为,x,y,的取值范围,,tol,为相对允许误差,其系统默认值为,2e-3,。选项定义与,plot,函数相同。,例,用,fplot,函数绘制,f(x,)=,cos(tan(x,),的曲线。,命令如下:,fplot(cos(tan(pi,*x), 0,1,1e-4),4.1,二维数据曲线图,4.1.7,图形窗口的分割,subplot,函数的调用格式为:,subplot(m,n,p,),该函数将当前图形窗口分成,mn,个绘图区,即每行,n,个,共,m,行,区号按行优先编号,且选定第,p,个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。,4.1,二维数据曲线图,4.2.1,其他坐标系下的二维数据曲线图,1,对数坐标图形,MATLAB,提供了绘制对数和半对数坐标曲线的函数,调用格式为:,semilogx(x1,y1,选项,1,x2,y2,选项,2,),semilogy(x1,y1,选项,1,x2,y2,选项,2,),loglog(x1,y1,选项,1,x2,y2,选项,2,),例,绘制,y=10x,2,的对数坐标图与直角线性坐标图进行比较。,4.2,其他二维图形,2,极坐标图,polar,函数用来绘制极坐标图,其调用格式为:,polar(theta,rho,选项,),其中,theta,为极坐标极角,,rho,为极坐标矢径,选项的内容与,plot,函数相似。,例,绘制,r=,sin(t)cos(t,),的极坐标图,并标记数据点。,程序如下:,t=0:pi/50:2*pi;,r=,sin(t,).*,cos(t,);,polar(t,r,-*);,4.2,其他二维图形,4.2.2,二维统计分析图,在,MATLAB,中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:,bar(x,y,选项,),stairs(x,y,选项,),stem(x,y,选项,),fill(x1,y1,选项,1,x2,y2,选项,2,),4.2,其他二维图形,例,分别以条形图、阶梯图、杆图和填充图形式绘制曲线,y=2sin(x),。,程序如下:,x=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);,MATLAB,提供的统计分析绘图函数还有很多,例如用来表示各元素占总和的百分比的饼图、复数的相量图等等。,例,(1),某企业全年各季度的产值,(,单位:万元,),分别为:,2347,1827,2043,3025,,试用饼图作统计分析。,(2),绘制复数的相量图:,7+2.9i,、,2-3i,和,-1.5-6i,。,程序如下:,subplot(1,2,1);,pie(2347,1827,2043,3025);,title(,饼图,);,legend(,一季度,二季度,三季度,四季度,);,subplot(1,2,2);,compass(7+2.9i,2-3i,-1.5-6i);,title(,相量图,);,4.2,其他二维图形,MATLAB,提供了一个,ezplot,函数绘制隐函数图形,下面介绍其用法。,(1),对于函数,f =,f(x,),,,ezplot,函数的调用格式为:,ezplot(f,),:在默认区间,-2x2,绘制,f =,f(x,),的图形。,ezplot(f, ,a,b,),:在区间,axb,绘制,f =,f(x,),的图形。,4.3,隐函数绘图,(2),对于隐函数,f =,f(x,y,),,,ezplot,函数的调用格式为:,ezplot(f,),:在默认区间,-2x2,和,-2y2,绘制,f(x,y,) = 0,的图形。,ezplot(f, ,xmin,xmax,ymin,ymax,),:在区间,xmin,x,xmax,和,ymin,y,ymax,绘制,f(x,y,) = 0,的图形。,ezplot(f, ,a,b,),:在区间,axb,和,ay b,绘制,f(x,y,) = 0,的图形。,4.3,隐函数绘图,(3),对于参数方程,x =,x(t,),和,y =,y(t,),,,ezplot,函数的调用格式为:,ezplot(x,y,),:在默认区间,0t2,绘制,x=,x(t,),和,y=,y(t,),的图形。,ezplot(x,y, ,tmin,tmax,),:在区间,tmin, t ,tmax,绘制,x=,x(t,),和,y=,y(t,),的图形。,4.3,隐函数绘图,例,隐函数绘图应用举例。,程序如下:,subplot(2,2,1);,ezplot(x2+y2-9);axis equal,subplot(2,2,2);,ezplot(x3+y3-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),4.3,隐函数绘图,4.4.1,三维曲线,plot3,函数与,plot,函数用法十分相似,其调用格式为,plot3(x1,y1,z1,选项,1,x2,y2,z2,选项,2,xn,yn,zn,选项,n),其中每一组,x,y,z,组成一组曲线的坐标参数,选项的定义和,plot,函数相同。当,x,y,z,是同维向量时,则,x,y,z,对应元素构成一条三维曲线。当,x,y,z,是同维矩阵时,则以,x,y,z,对应列元素绘制三维曲线,曲线条数等于矩阵列数。,4.4,三维图形,例,绘制三维曲线。,程序如下:,t=0:pi/100:20*pi;,x=,sin(t,);,y=,cos(t,);,z=t.*,sin(t,).*,cos(t,);,plot3(x,y,z);,title(Line,in 3-D Space);,xlabel(X,);,ylabel(Y,);,zlabel(Z,);,grid on;,4.4,三维图形,4.4.2,三维曲面,1,产生三维数据,在,MATLAB,中,利用,meshgrid,函数产生平面区域内的网格坐标矩阵。其格式为:,x=a:d1:b; y=c:d2:d;,X,Y=,meshgrid(x,y,);,该函数将向量,X,与,Y,定义的区域转换成数组,X,和,Y,。输出的,X,和,Y,分别为平面上矩形区域分割点的横、纵坐标值。,4.4,三维图形,2,绘制三维曲面的函数,surf,函数和,mesh,函数的调用格式为:,mesh(x,y,z,c,),surf(x,y,z,c,),一般情况下,,x,y,z,是维数相同的矩阵。,x,y,是网格坐标矩阵,,z,是网格点上的高度矩阵,,c,用于指定在不同高度下的颜色范围。,4.4,三维图形,例,绘制三维曲面图,z=sin(x+sin(y)-x/10,。,程序如下:,x,y,=meshgrid(0:0.25:4*pi);,z=sin(x+sin(y)-x/10;,mesh(x,y,z,);,axis(0,4*pi,0,4*pi,-2.5,1);,4.4,三维图形,3,标准三维曲面,sphere,函数的调用格式为:,x,y,z,=,sphere(n,),cylinder,函数的调用格式为:,x,y,z,=,cylinder(R,n,),MATLAB,还有一个,peaks,函数,称为多峰函数,常用于三维曲面的演示。,4.4,三维图形,例,绘制标准三维曲面图形。,程序如下:,t=0:pi/20:2*pi;,x,y,z,= cylinder(2+sin(t),30);,subplot(2,2,1);,surf(x,y,z,);,subplot(2,2,2);,x,y,z,=sphere;,surf(x,y,z,);,subplot(2,1,2);,x,y,z,=peaks(30);,surf(x,y,z,);,4.4.3,其他三维图形,在介绍二维图形时曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是,bar3,、,stem3,、,pie3,和,fill3,。,1. bar3,函数绘制三维条形图,常用格式为:,bar3(y),bar3(x,y),2. stem3,函数绘制离散序列数据的三维杆图,常用格式为:,stem3(z),stem3(x,y),4.4,三维图形,3.pie3,函数绘制三维饼图,常用格式为:,pie3(x),4.fill3,函数等效于三维函数,fill,,可在三维空间内绘制出填充过的多边形,常用格式为:,fill3(x,y,z,c),4.4,三维图形,4.4,三维图形,例,绘制三维图形:,(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 );,例 绘制多峰函数的瀑布图和等高线图。,程序如下:,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,代表高度的等级数,xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis,);,4.4,三维图形,4.5.1,视点处理,MATLAB,提供了设置视点的函数,view,,其调用格式为:,view(az,el,),其中,az,为方位角,,el,为仰角,它们均以度为单位。系统缺省的视点定义为方位角,-37.5,仰角,30,。,4.5,图形修饰处理,4.5.2,色彩处理,1,颜色的向量表示,MATLAB,除用字符表示颜色外,还可以用含有,3,个元素的向量表示颜色。向量元素在,0,1,范围取值,,3,个元素分别表示红、绿、蓝,3,种颜色的相对亮度,称为,RGB,三元组。,4.5,图形修饰处理,2,三维表面图形的着色,三维表面图实际上就是在网格图的每一个网格片上涂上颜色。,surf,函数用缺省的着色方式对网格片着色。除此之外,还可以用,shading,命令来改变着色方式。,shading faceted,命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其颜色是黑色。这是系统的缺省着色方式。,4.5,图形修饰处理,shading flat,命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。,shading,interp,命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。,4.5,图形修饰处理,例,3,种图形着色方式的效果展示,程序如下:,x,y,z,=sphere(20);,subplot(1,3,1);,surf(x,y,z,);,axis equal,subplot(1,3,2);,surf(x,y,z);shading,flat;,axis equal,subplot(1,3,3);,surf(x,y,z);shading,interp,;,axis equal,4.5.3,光照处理,例,光照处理后的球面。,程序如下:,x,y,z,=sphere(20);,subplot(1,2,1);,surf(x,y,z);axis,equal;,light(Posi,0,1,1);,shading,interp,;,hold on;,plot3(0,1,1,p);text(0,1,1, light);,subplot(1,2,2);,surf(x,y,z);axis,equal;,light(Posi,1,0,1);,shading,interp,;,hold on;,plot3(1,0,1,p);text(1,0,1, light);,4.5.4,图形的裁剪处理,例,绘制三维曲面图,并进行插值着色处理,裁掉图中,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);shading,interp,;,pause %,程序暂停,i=,find(x,=0,z1=z;z1(i)=,NaN,;,surf(x,y,z1);shading,interp,;,4.5,图形修饰处理,4.6.1,图像处理,1,imread,和,imwrite,函数,imread,和,imwrite,函数分别用于将图像文件读入,MATLAB,工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。,MATLAB,支持多种图像文件格式,如,.bmp,、,.jpg,、,.jpeg,、,.,tif,等。,4.6,图像处理与动画制作,2,image,和,imagesc,函数,这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用,colormap,函数设置图像色图。,例,在图形窗口显示图像文件,flower.jpg,。,程序如下:,x,cmap,=,imread(flower.jpg,); %,读取图像的数据阵和色图阵,image(x,);,4.6,图像处理与动画制作,4.6.2,动画制作,MATLAB,提供,getframe,、,moviein,和,movie,函数进行动画制作。,1,getframe,函数,getframe,函数可截取一幅画面信息,(,称为动画中的一帧,),,一幅画面信息形成一个很大的列向量。显然,保存,n,幅图面就需一个大矩阵。,4.6,图像处理与动画制作,2,moviein,函数,moviein(n,),函数用来建立一个足够大的,n,列矩阵。该矩阵用来保存,n,幅画面的数据以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。,3,movie,函数,movie(m,n,),函数播放由矩阵,m,所定义的画面,n,次,缺省时播放一次。,4.6,图像处理与动画制作,例,绘制,peaks,函数曲面并且将它绕,z,轴旋转。,程序如下,X,Y,Z=peaks(30);,surf(X,Y,Z,);,axis(-3,3,-3,3,-10,10);,shading,interp,;,m=moviein(20); %,建立一个,20,列大矩阵,for i=1:20,view(-37.5+24*(i-1),30) %,改变视点,m(:,i,)=,getframe,; %,将图形保存到,m,矩阵,end,movie(m,2); %,播放画面,2,次,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!