matlab第四讲

上传人:猪** 文档编号:242972977 上传时间:2024-09-13 格式:PPT 页数:78 大小:1.23MB
返回 下载 相关 举报
matlab第四讲_第1页
第1页 / 共78页
matlab第四讲_第2页
第2页 / 共78页
matlab第四讲_第3页
第3页 / 共78页
点击查看更多>>
资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,东北电力大学,理学院 徐 屹,Northeast,Dianli,College,Matlab,语言程序设计,第四讲,Matlab,绘图,二维图形,1,数据分析图,2,三维图形,3,3,第四讲,Matlab,绘图,matlab,语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。,不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。,matlab,语言不仅具有高层绘图能力,而且还具有底层绘图能力,句柄绘图方法。,在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。,matlab,语言的绘图功能,一、二维图形,1.1 plot ,最基本的二维图形指令,plot,的功能,:,plot,命令自动打开一个图形窗口,Figure,用直线连接相邻两数据点来绘制图形,根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把,x, y,轴用对数坐标表示,一、二维图形,如果已经存在一个图形窗口,,plot,命令则清除当前图形,绘制新图形,可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图,可任意设定曲线颜色和线型,可给图形加坐标网线和图形加注功能,一、二维图形,plot,的调用格式:,plot(x),缺省自变量绘图格式,,x,为向量,以,x,元素值为纵坐标,以相应元素下标为横坐标绘图,plot(x,y),基本格式,以,y(x),的函数关系作出直角坐标图,如果,y,为,n,m,的矩阵,则以,x,为自变量,作出,m,条曲线,plot(x1,y1,x2,y2),多条曲线绘图格式,一、二维图形,plot(x,y,s,),开关格式,开关量字符串,s,设定曲线颜色和绘图方式,使用颜色字符串的前,13,个字母,如,yellow,yel,表示等,。,或,plot(x1,y1,s1,x2,y2,s2,,,),下表中列出了,s,可以取的值。,一、二维图形,点 型,.,点,正三角,*,星号,v,倒,三角,O,O,s,正方形,+,+,d,菱形,X,乘号,p,五角星,右三角,none,无点,一、二维图形,线 型,颜 色,-,实线,m,品红色,-,虚线,b,蓝色,-.,点划线,c,灰色,:,点线,w,白色,none,无线,r,红色,颜 色,k,黑色,g,绿色,y,黄色,一、二维图形,1,) 单窗口单曲线绘图,例,1,:,x=0, 0.48,0.84,1,0.91,0.6,0.14 x1, x2, x3, x4, x5, x6, x7,plot (x),exno41,一、二维图形,2,)单窗口多曲线绘图,例,2,:,t=0:pi/100:2*pi;,y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);,plot(t,y,t,y1,t,y2),y,y1,y2,exno42,一、二维图形,例,3,:,y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y,y1,y2,y3,y4,y5),exno43,一、二维图形,y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);,plot(t,y3);hold on; plot(t,y4); plot(t,y5);,exno44,一、二维图形,3,) 单窗口多曲线分图绘图,subplot,子图分割命令,调用格式:,subplot(m,n,p) ,按从左至右,,从上至下排列,行,列,绘图序号,一、二维图形,subplot(1,3,1); plot(t,y)subplot(1,3,2); plot(t,y1)subplot(1,3,3); plot(t,y2),exno45,一、二维图形,subplot(3,1,1);plot(t,y)subplot(3,1,2);plot(t,y3)subplot(3,1,3);plot(t,y2),exno46,一、二维图形,exno461,4),多窗口绘图,figure(n) ,创建窗口函数,,n,为窗口顺序号,t=0:pi/100:2*pi;,y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);,plot(t,y) ,自动出现第一个窗口,figure(2),plot(t,y1) ,在第二窗口绘图,figure(3),plot(t,y2) ,在第三窗口绘图,一、二维图形,exno42,5),可任意设置颜色与线型,例,4(,例,2),:,plot(t,y,r-,t,y1,g:,t,y2,b*),一、二维图形,4,)图形加注功能,将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:,title,给图形加标题,xlable,给,x,轴加标注,ylable,给,y,轴加标注,text,在,图形指定位置加标注,gtext,将标注加到图形任意位置,grid on(off),打开、,关闭坐标网格线,legend,添加,图例。,该命令把图例放置,在图形空白处,用户还可以通过鼠标移动,图例,将其放到希望的位置。,axis,控制,坐标轴的刻度,一、二维图形,例:,t=0:0.1:10,y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);,x=1.7*pi;1.6*,pi;y,=-0.3;0.8;%,给出,x,y,的位置,s=,sin(t);cos(t,);,text(x,y,s,);%,在图形指定位置加标注,s,title(,正弦和余弦曲线,);,legend(,正弦,余弦,),xlabel,(,时间,t),ylabel,(,正弦、余弦,),grid on,exno47,一、二维图形,一、二维图形,x=0:0.25:5;,y1=x.0.1;y2=x.0.5;y3=x.0.8;y4=x.1.5;,t=0:0.001:2*pi;,hold on,plot(3*cos(t),3*,sin(t,),plot(x,y1,bo,x,y2,rH-),plot(x,y3,gp-),plot(x,y4,mx-.),title(My,Title),xlabel(My,X-axis,Label),ylabel(My,Y-axis Label),text(2,8,Text for annotation),gtext(Text,for,annotation),grid,exno471,一、二维图形,一、二维图形,图形的注释功能主要包括以下几个部分的内容:,1,、在图形的任意地方添加文本、直线、箭头以及其他方式;,2,、将注释定位于数据空间;,3,、增加文本注释和颜色;,4,、增加坐标轴标签和图形标题;,5,、对图形体的属性进行编辑。,一、二维图形,对图形的注释可以使用以下,4,种方式:,1,、“图形注释”工具栏的显示,选择,view,菜单中的,plot edit toolbar,命令。,2,、图形调色板中的“注释”工具,基本的注释工具也可从图形调色板中调出,可以选择,view,菜单下的,figure palette,命令调出图形调色板。,3,、从,insert,菜单增添注释,用户也可以从,insert,菜单增添注释,打开,insert,菜单,从,insert,下拉菜单中选择用户需要的注释种类即可。,4,、使用命令语句增添注释,一、二维图形,axis,的用法还有:,1,、使用,axis,命令定义坐标轴的特殊定标尺度,axis(xmin xmax ymin ymax) ,用行向量中给出的值设定坐标轴的最大和最小值。,如,axis (-2 2 0 5),2,、另一个作用是控制纵横尺度的比例,。,axis square,横轴及纵轴比例是,1:1,,即坐标轴显示为正方体。,axis equal ,将,两坐标轴设为相等,即坐标轴等比例显示。,axis normal ,以预设值画纵轴及横轴,axis on(off) ,显示,和关闭坐标轴的标记、标志,axis auto ,将,坐标轴设置返回自动缺省值,一、二维图形,例如,输入,axis(,square,),后,可得到一个显示方框,此时再在该框内绘制一个圆形时(如:,plot(sin(x),cos(x,),,在屏幕上可以看到一个标准的圆(一般情况下,由于屏幕的不规则原因,只能看到一个椭圆)。再次输入,axis(,normal,),命令,屏幕返回到一般状态。,一、二维图形,以下是应用,axis,的范例:, x=linspace(0,2*pi,30); y=,sin(x,); z=,cos(x,);,plot(x,y,x,z,), axis off, axis on,axis(square,equal,), %,axis(normal,),exno421,一、二维图形,1.2,彗星图形,comet ( x , y ),绘制向量,y,对向量,x,的彗星轨线。如果只给出一个向量,则用该向量对其下标值绘图。,exno48,例,:,t=0:0.1:2*pi;,x=cos(2*t).*(cos(t).2);,y=sin(2*t).*(sin(t).2);,comet(x,y,);,一、二维图形,1.3,其他绘图命令,area ( x , y ),和,plot,命令一样,但是将所得的曲线下方即曲线与横轴之间的区域填充颜色。,例如:,x=0,0.48,0.84,1,0.91,0.6,0.14;,area(x,),exno49,一、二维图形,exno491,fill,的功能:,绘制二维多边形并填充颜色,例:,x=1 2 3 4 5;y=4 1 5 1 4;,fill(x,y,r,),一、二维图形,ezplot,符号函数的简易绘图函数,ezplot,的调用格式:,(,1,),ezplot(f,x1,x2) ,这里,f,为包含单个符号变量,x,的符号表达式,,x1,x2,自变量的取值范围,默认范围,-2*pi,,,2*pi,。,(,2,),ezplot(u(x,y),x1,x2,y1,y2) ,两变量隐函数,u(x,y,)=0,,,x1,x2,y1,y2,:表示两个变量的取值范围。,(,3,),ezplot(x,y,t1,t2) ,x,f(t),y,g(t,),是参数方程,,t1,t2,是变量的取值范围。,一、二维图形,例:关于,ezplot,的说明,f=sym(x2+1),subplot(2,2,1),ezplot(f,-2,2),subplot(2,2,2),ezplot(y-x2-1,-2,2,0,10),x=,sym(cos(t,),y=,sym(sin(t,),subplot(2,2,3),ezplot(x,y,),exno420,一、二维图形,exno4201,例:,ezplot(sin(x,)ezplot(sin(x),cos(y),-4*pi 4*pi,figure(2),一、二维图形,1.4,极坐标图形的绘制,Matlab,提供了,polar,函数来在极坐标下绘制图形,其一般的使用格式如下。,Polar(theta,rho,) theta,为极角,,rho,为极半径。,Polar(theta,rho,s,) s,中增加绘制图形的颜色和线型的定义。,一、二维图形,例:使用,polar,函数在极坐标下绘制函数的图型。,%,该程序介绍,polar,函数的用法,x=0:0,01:10;,y1=,sin(x,);,y2=cos(x-2.5);,polar(y1,y2,-r+),exno419,一、二维图形,1.5,图形控制,h o m e,移动光标到命令窗口的左上角。,hold on,保持当前图形。允许在当前图形状态下,使用同样的缩放比例加入另一个图形。,hold off,释放图形窗口,这样下一个图形将称为当前图形。这是缺省状态。,h o l d,在,hold on,和,hold off,之间进行切换。,一、二维图形,阅读如下程序:,x=linspace(0,2*pi,60);,y=sin(x);,z=,cos(x,);,plot(x,y,b);,绘制正弦曲线,hold on;,设置图形保持状态,plot(x,z,g);,保持正弦曲线同时绘制余弦曲线,axis (0 2*pi -1 1);,legend(cos,sin,);,hold off,关闭图形保持,exno410,二、数据分析图,bar,绘制直方图,polar,绘制极坐标图,hist ,绘制统计,直方图,stairs ,绘制阶梯图,stem ,绘制火柴杆图,rose ,绘制统计扇形图,comet ,绘制彗星曲线,二、数据分析图,errorbar ,绘制误差棒图,compass,复数向量图,(,罗盘图,),feather ,复数向量投影图,(,羽毛图,),quiver ,向量场图,area ,区域图,pie ,饼图,convhull,凸壳图,scatter ,离散点图,二、数据分析图,例,绘制阶梯曲线,x=0:pi/20:2*,pi;y,=,sin(x);stairs(x,y,),exno411,二、数据分析图,例:绘制火柴杆绘图,t=0:0.2:2*pi; y=,cos(t,);,stem(y,),exno4111,二、数据分析图,例:绘制直方图,t=0:0.2:2*pi; y=,cos(t,);,bar(y,),exno412,二、数据分析图,例:绘制彗星曲线图,t= -pi:pi/500:pi;,y=,tan(sin(t)-sin(tan(t,);,comet(t,y,),二、数据分析图,x=magic(6);area(x),二、数据分析图,x=1 2 3 4 5 6 7;y=0 0 0 1 0 0 0;,pie(x,y,),exno413,二、数据分析图,plot,二维图形基本函数,fplot,f(x),函数曲线绘制,fill,填充二维多边图形,polar,极坐标图,bar,条形图,loglog,双对数坐标图,semilogx,X,轴为对数的坐标图,semilogy,Y,轴为对数的坐标图,stairs,阶梯形图,axis,设置坐标轴,clf,清除图形窗口内容,close,关闭图形窗口,figure,创建图形窗口,grid,放置坐标网格线,gtext,用鼠标放置文本,hold,保持当前图形窗口内容,subplot,创建子图,text,放置文本,title,放置图形标题,xlabel,放置,X,轴坐标标记,ylabel,放置,Y,轴坐标标记,二维绘图函数小结,三、三维图形,plot3 ,基本的三维图形指令,调用格式:,plot3(x,y,z) x,y,z,是,长度相同的向量,plot3(X,Y,Z) X,Y,Z,是维数相同的矩阵,plot3(x,y,z,s) ,带开关量,plot3(x1,y1,z1,s1, x2,y2,z2,s2, ),一、,plot3,函数,三、三维图形,二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小,axis(xmin xmax ymin ymax zmin zmax ),grid on(off),绘制三维网格,text(x,y,z,string),三维图形标注,子图和多窗口也可以用到三维图形中,三、三维图形,例:绘制三维螺旋曲线,其程序为,:,t=0:pi/50:10*pi;,y1=sin(t),y2=,cos(t,);,plot3(y1,y2,t);,title(helix),text(0,0,0,origin);,xlabel(sin(t),ylabel(cos(t),zlabel(t,);,grid;,exno414,三、三维图形,三维饼图,pie3(4 3 6 8 9),exno415,三、三维图形,exno4151,三维多边形,fill3 = fill ,三维多边形的绘制和填色与二维多边形完全相同,调用格式:,fill3(x,y,z,s) ,与二维相同,例: 用随机顶点坐标画出,5,个粉色的三角形,并用黄色的表示顶点,y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);,fill3(y1,y2,y3,m);hold on;plot3(y1,y2,y3,yo),二、,mesh,函数,mesh,函数用于绘制三维网格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了实验数据在三维空间的可视化问题。,函数格式,:,mesh(x,y,z,c),其中,x,,,y,控制,X,和,Y,轴坐标,矩阵,z,是由,(x,,,y),求得,Z,轴坐标,,(x,y,z),组成了三维空间的网格点;,c,用于控制网格点颜色。,例:下列程序绘制三维网格曲面图,x=0:0.15:2*pi;,y=0:0.15:2*pi;,z=sin(y)*,cos(x,);,矩阵相乘,mesh(x,y,z);,三、三维图形,exno416,三、三维图形,三维网格图,三、三维图形,mesh ,三维网线绘图函数,调用格式:,mesh(z) z,为,nm,的矩阵,,x,与,y,坐标为元素的下标,mesh(x,y,z) x,y,z,分别为三维空,间的坐标位置,例 矩阵的三维网线图,z=rand(6);,0.8808 0.0729 0.4168 0.7694 0.3775 0.4776,0.3381 0.7101 0.0964 0.6352 0.3826 0.7086,0.1895 0.8791 0.6747 0.8965 0.6876 0.2380,0.7431 0.3594 0.5626 0.8784 0.1217 0.3910,0.7189 0.0899 0.8130 0.4865 0.0768 0.9759,0.8792 0.1610 0.8782 0.1131 0.1433 0.6288,z=round(z),1 0 0 1 0 0,0 1 0 1 0 1,0 1 1 1 1 0,1 0 1 1 0 0,1 0 1 0 0 1,1 0 1 0 0 1,mesh(z),;,三、三维图形,三、三维图形,例:,8,阶,hadamard,矩阵的网线图,h2=1 1;1 -1;h4=h2 h2;h2 -h2,h8=h4 h4;h4 -h4,1 1 1 1 1 1 1 1,1 -1 1 -1 1 -1 1 -1,1 1 -1 -1 1 1 -1 -1,1 -1 -1 1 1 -1 -1 1,1 1 1 1 -1 -1 -1 -1,1 -1 1 -1 -1 1 -1 1,1 1 -1 -1 -1 -1 1 1,1 -1 -1 1 -1 1 1 -1,mesh(h8),三、三维图形,三、三维图形,三、,surf,函数,surf,用于绘制三维曲面图,各线条之间的补面用颜色填充。,surf,函数和,mesh,函数的调用格式一致。,函数格式,:,surf (x,y,z),其中,x,,,y,控制,X,和,Y,轴坐标,矩阵,z,是由,x,,,y,求得的曲面上,Z,轴坐标。,例:,下列程序绘制三维曲面图形,x=0:0.15:2*pi;,y=0:0.15:2*pi;,z=sin(y)*,cos(x,);,矩阵相乘,surf(x,y,z);,xlabel(x-axis),ylabel(y-axis),zlabel(z-label,);,title(3-D surf);,exno417,三、三维图形,三、三维图形,四、等高线图,等高线图可通过函数,contour3,绘制,。,例:多峰函数,peaks,的等高线图,x,y,z=peaks(30);,contour3(x,y,z,16);,xlabel(x-axis),ylabel(y-axis),zlabel(z-axis,);,title(contour3 of peaks),exno418,三、三维图形,三、三维图形,等高线修饰,二维,contour(Z,n)-,绘制,n,条等高线,C=,contourc(Z,n,)-,计算,n,条等高线的坐标,Clable(c,)-,给等高线加标注,例、在二维平面上绘制,peaks,函数的,10,条等,高线,contour(peaks,10);,C=contourc(peaks,10);clabel(C),三、三维图形,三、三维图形,五、视角修饰,(,函数,view(az,el,),az,-,方位角,;,el -,俯视角,省缺值为:,az,=-37.5; el=30,例。观察不同视角的波峰图形,z=peaks(40);,subplot(2,2,1);mesh(z);,subplot(2,2,2);mesh(z);view(-15,60);,subplot(2,2,3);mesh(z);view(-90,0);,subplot(2,2,4);mesh(z);view(-7,-10);,三、三维图形,三、三维图形,MATLAB,是以,meshgrid,配合与,mesh,或,surf,指令来绘图。先要以,meshgrid,产生在,x-y,平面的二维的网格数据,再以一组,z,轴的数据对应到这个二维的网格,即可画出三维的曲面。以下的例子可说明上 述的绘图过程。, x=-7.5:0.5:7.5; y=x; %,先产生,x,及,y,二个阵列, X,Y=,meshgrid(x,y,); %,再以,meshgrid,形成二维的网格数据, R=sqrt(X.2+Y.2)+eps; %,加上,eps,可避免当,R,在分母时趋近零时会无法定义, Z=,sin(R,)./R; %,产生,z,轴的数据,mesh(X,Y,Z,) %,将,z,轴的变化值以网格方式画出,surf(X,Y,Z,) %,将,z,轴的变化值以曲面方式画出,mesh(peaks,) %,直接将以定义的,peaks,函数以网格方式画出,title(Mesh,plot of peaks),三、三维图形,contour,是将等值线图以二维图表示,其语法有 几个方式。一是,contour(Z,),contour(Z,n,),,其中,Z,是一个二维矩阵,而,n,为等值线的数目(如果不给即以自动方式 设定)。另一种语法则是将,z,轴的值对应到指定的,x,y,轴的值,语法为,contour(X,Y,Z),contour(X,Y,Z,n,),,其中,X,Y, Z,代表,x,y,z,轴的数据。,contour3,则是将等值线以三维图表示,其语法与,contour,类似,只是将对应的关键字,contour,改成,contour3,,其余部份相同。,以下的例子可以比较,contour, contour3,图示的不同:, X,Y,Z=peaks; %,x,y,及,z,轴的数据由,peaks,函数定义, subplot(2,2,1), contour(Z,20) %,画出,peaks,的,Z,轴二维等值线图,,20,为等值线的数目, subplot(2,2,2), contour(X,Y,Z,20) %,画出,peaks,的二维等值线图,注意,x,y,轴与上图不同, subplot(2,2,3), contour3(Z,20) %,画出,peaks,的,Z,轴二维等值线图, subplot(2,2,4), contour3(X,Y,Z,20) %,画出,peaks,的三维等值线图,注意,x,y,轴与上图不同,三、三维图形,练习,(海底测量):下表给出海平面上点(,x,y,)处水深,z,,这是在低潮时测得的。如果船的吃水深度为,5,米,试问在矩形域,75x200,-50y,clear;close,;,x=129 140 108 88 185 195 105 157 107 77 145 162,162,117,;,y=7 141 28 147 22 137 85 -6 -81 3 45 -66 84 -38,;,plot(x,y,o,);,hddxt,三、三维图形,z=4 8 6 8 6 8 8 9 9 8 8 9 4 9;,h=-z; %,数据转化为相对于海面的高度,xi=75:5:200;yi=-50:10:150;,X,Y=,meshgrid(xi,yi,);,H=,griddata(x,y,h,X,Y,cubic,),mesh(X,Y,H,);,view(-60,30); %,改变视点,由上图可见,这是一批不规则数据。由于没有先验函数,我们使用插值法,为了使结果更直观,考虑将,z,的数据转化为相对于海面的高度。,三、三维图形,三、三维图形,由此可见。在点(,129,,,7.5,)和点(,162,,,84,)附近各有一块暗礁。进一步求水深不到,5,米的两个危险区域;,contour(X,Y,H,-5,5,k) %k,表示等高线的颜色为黑色。,调用格式:,surf(x,y,z) ,绘制三维曲面图,,x,y,z,为图形坐标向量,例:,X,Y,Z=peaks(30),peaks,为,matlab,自动生成的三维测,试图形,surf(X,Y,Z),surfc(X,Y,Z) ,带等高线的曲面图,X,Y,Z=peaks(30);surfc(X,Y,Z),surfl(X,Y,Z) ,被光照射带阴影,的曲面图,X,Y,Z=peaks(30);surfl(X,Y,Z),cylinde(r,n) ,三维柱面绘图函数,r,为,半径;,n,为柱面圆周等分数,例:绘制三维陀螺锥面,t1=0:0.1:0.9;,t2=1:0.1:2;,r=t1 -t2+2;,x,y,z=cylinder(r,30);,surf(x,y,z);,grid,为球面等分数,缺省为,20,例:绘制三维球面,x,y,z=sphere(30);surf(x,y,z);,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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