收藏 分销(赏)

第4章--MATLAB绘图PPT学习课件.ppt

上传人:天**** 文档编号:9247488 上传时间:2025-03-18 格式:PPT 页数:116 大小:1.40MB 下载积分:20 金币
下载 相关 举报
第4章--MATLAB绘图PPT学习课件.ppt_第1页
第1页 / 共116页
第4章--MATLAB绘图PPT学习课件.ppt_第2页
第2页 / 共116页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章,MATLAB,绘图,4.1,二维图形,4.2,三维图形,4.3,三维图形的精细处理,4.4,图像与动画,4.5,低层绘图操作,目录,1,MATLAB,提供多种图形功能,使你的数据或函数可视化,使数据不再是枯燥乏味的。使用,MATLAB,的图形函数,可以绘制二维或三维的数据图形和函数图形,如数据的散点图、直方图、茎干图、饼图、阶梯图和面积图等。使数据可视化的基本步骤是:,1.,准备好数据;,2.,选择适用的绘制图形函数;,3.,选择窗口和位置;,4.,编辑图形标注和说明;,5.,输出或保存图形。,2,MATLAB,提供了丰富的绘图功能,help graph2d,可得到所有画二维图形的命令,help graph3d,可得到所有画三维图形的命令,3,4.1,二维图形,4.1.1,绘制二维曲线的最基本函数,1.plot,函数的基本用法,plot,函数的基本调用格式为:,plot(x,y),其中,x,和,y,为,长度相同的向量,,分别用于存储,x,坐标和,y,坐标数据。,条件是元素个数能对应。,目录,4,例,4.1,在,0X2,区间内,绘制,曲线,y=2e,-0.5x,sin(2x),。,程序如下:,目录,x=0:pi/100:2*pi;,y=2*exp(-0.5*x).*sin(2*pi*x);,plot(x,y),5,说明:,(,1,)当,x,y,是同维矩阵时,则以,x,y,对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,(,2,)当,x,是向量,,y,是有一维与,x,同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于,y,矩阵的另一维数,,x,被作为这些曲线共同的横坐标。,目录,x=0:pi/100:2*pi;,y=sin(2*pi*x);2*exp(-0.5*x).*sin(2*pi*x);,plot(x,y),6,7,(,3,),plot,函数最简单的调用格式是只包含一个输入参数:,plot(y),即绘制以向量,Y,元素值为纵坐标(假如元素为实数),它的下标值为横坐标的线性图,(,即绘制,Y,的列向量对其坐标索引的图形,),。,8,y=0 0.58 0.7 0.95 0.83 0.25;,plot(y);%,实际上是画折线,9,例,4.2,某工厂,2000,年各月总产值(单位:万元)分别为,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),10,x=linspace(0,2*pi,30);y=sin(x);plot(y),注意,为,29,等分,,30,维向量,,与,plot(y),的区别,.,11,x=linspace(0,2*pi,30);y=sin(x);,plot(x,y),12,2,含多个输入参数的,plot,函数,含多个输入参数的,plot,函数调用格式为:,plot(x1,y1,x2,y2,xn,yn),3,含选项的,plot,函数,含选项的,plot,函数调用格式为:,plot(x1,y1,选项,1,x2,y2,选项,2,xn,yn,选项,n),选项参数,option,定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。,目录,13,线型,线方式:,-,实线,:点线,,-.,虚点线,,-,波折线,标记点,.(,圆点,),+(,加号,),*(,星号,),x(,叉号,),o(,圆点,),s(,方块,),,,d(,菱形,),,,p(,五角星,),h(,六角形,),线的颜色,:,y yellow,r red,g green,b blue,w write,k black,c cyan(,青色,),在不指定时,默认实线方式,颜色自动确定,.,不同种类的选项可搭配使用,如选项“,ro”,表示绘制红色的圆划线,“,y-”,表示黄色的实划线。,14,例,用不同线型和颜色在同一坐标内绘制曲线,y=sinx,y=cosx,的图像。,程序如下:,x=linspace(0,2*pi,100);plot(x,sin(x),kh,x,cos(x),gp),%,正、余弦曲线分别用黑色六角形、绿色五角星表示,15,例,4.3,用不同线型和颜色在同一坐标内绘制曲线,y=2e,-0.5x,sin(2x),及其包络线。,程序如下:,目录,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);,16,4,双纵坐标函数,plotyy,plotyy,函数是,MATLAB 5.X,新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:,plotyy(x1,y1,x2,y2),其中,x1y1,对应一条曲线,,x2y2,对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于,x1y1,数据对,右纵坐标用于,x2y2,数据对。,目录,17,例,4.4,用,不同标度,在同一坐标内绘制曲线,y1=e,-0.5x,sin(2x),及曲线,y2=1.5e,-0.1x,sin(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);,目录,18,当使用,MATLAB,绘图函数,绘制好图形后,为了丰富图形的内涵,还必须对图形添加标题、坐标轴标签、文字说明、图例、辅助线、指示线等,见下图。,4.1.2,绘制图形的辅助操作,1.,图形标注,19,20,MATLAB,可以通过三种方式对图形进行标注。,从图形中直接标注。点击图形窗口中的插入菜单,在插入菜单中有子菜单,x,、,y,、,z,、,label(,坐标轴标签,),,,text(,文本说明,),,,axes(,坐标轴设置,),,,light(,光照设置,),等供标注或设置。,使用图形标注函数进行标注。使用图形标注函数可以直接从程序中编写,当执行程序后,图形中自动添加了图形标注。,使用图形的属性编辑器。在当前图形的菜单栏中选择,edit/figure properties,并点击,即进行图形的属性编辑。在编辑器里可以对图形、线条、坐标、颜色、视角、光照进行编辑和设置。,21,有关图形标注函数的调用格式为:,title(,字符串,),:,在所画图形的最上端显示说明该图形标题的字符串。,xlabel(,字符串,),,,ylabel(,字符串,),:,分别为,x,,,y,坐标轴加上注解和说明,其中,ylabel,会自动旋转,90,显示。,text(x,y,字符串,属性名,,值,),在图形的指定坐标位置,(x,y),处,标示单引号括起来的字符串是要说明的内容,属性名及其定义字符串的显示格式。字符对象的常用属性如下:,Color,属性:,1*3,的颜色向量,FontAngle,属性:字体倾斜形式,FontName,属性:字体名称,.,text(2.5,0.7,sinx),在图中,(2.5,0.7),处加字符串,sinx,或,gtext(sinx),用鼠标光标定位置,22,x=linspace(0,2*pi,100);,plot(x,sin(x),kh,x,cos(x),gp),text(pi,0,leftarrow sin(pi),fontSize,18),23,legend(,字符串,1,字符串,2,字符串,n),在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。,legend(y=sin(x),y=cos(x);,x=linspace(0,2*pi,100);,plot(x,sin(x),kh,x,cos(x),gp),text(pi,0,leftarrow sin(pi),fontSize,18),24,例,4.5,给图形添加图形标注。,程序如下:,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,);,title(,曲线及其包络线,);%,加图形标题,xlabel(independent variable X);%,加,X,轴说明,ylabel(independent variable Y);%,加,Y,轴说明,gtext(,包络线,);%,在鼠标光标定位置添加图形说明,gtext(包络线);,gtext(,曲线,y,);,gtext(,离散数据点,);,legend(,包络线,包络线,曲线,y,离散数据点,)%,加图例,目录,25,26,2.,坐标控制,用户修改坐标系的范围的函数,MATLAB,可以根据所绘制曲线的范围自动选择适当的坐标系,使得曲线能够尽可能清晰地显示出来。所以一般情况下用不着考虑坐标范围的选择。但有特殊的需要时,用户可以手动地改变坐标系的范围。手动调整只须借助,axis,函数。,函数的调用格式为:,axis(xmin xmax ymin ymax zmin zmax),axis,函数功能丰富,常用的用法还有:,axis equal,纵、横坐标轴采用等长刻度,axis square,产生正方形坐标系,(,缺省为矩形,),axis auto,使用缺省设置,axis off,取消坐标轴,axis on,显示坐标轴,目录,27,【*,例,7.2.1-2】,用图形表示连续调制波形 及其包络线。,t=(0:pi/100:pi);%,长度为,101,的时间采样列向量,y1=sin(t)*1,-1;,%,包络线函数值,是(,101x2,)的矩阵,y2=sin(t).*sin(9*t);,%,长度为,101,的调制波列向量,t3=pi*(0:9)/9;,y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo),axis(0,pi,-1,1)%,控制轴的范围,28,3,、选择图像,figure,(,1,);,figure,(,2,);,;,figure(n),打开不同的图形窗口,以便绘制不同的图形。,4,、,grid on,:在所画出的图形坐标中加入栅格,grid off,:除去图形坐标中的栅格,不带参数的,grid,命令在两种状态之间进行切换。,5,、,hold on,:把当前图形保持在屏幕上不变,同时,允许在这个坐标内绘制另外一个图形。,hold off,:使新图覆盖旧的图形,6,、,box on/off,命令控制是加还是不加边框线,不带参数的,box,命令在两种状态之间进行切换。,29,x=0:pi/15:2*pi;y=sin(x);plot(x,y),hold on,z=cos(x);plot(x,z),hold off,30,例,4.6,用图形保持功能在同一坐标内绘制曲线,y=2e,-0.5x,sin(2x),及其包络线,并加网格线。,程序如下:,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);%,设置坐标,hold on;%,设置图形保持状态,plot(x,y2,k);,grid on;%,加网格线,box off;%,不加坐标边框,hold off;%,关闭图形保持,目录,31,32,3.,图形窗口的分割,subplot,函数的调用格式为:,subplot(m,n,p),目录,把一个画面分割成,m*n,个矩阵块区域,,p,代表当前的区域号,在每个区域中分别画一个图,33,例,4.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);,34,35,对图形窗口灵活分割。请看下面的程序。,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);%,选择,22,个区中的,1,号区,stairs(x,y);title(sin(x)-1);axis(0,2*pi,-1,1);,subplot(2,1,2);%,选择,21,个区中的,2,号区,stem(x,y);title(sin(x)-2);axis(0,2*pi,-1,1);,subplot(4,4,3);%,选择,44,个区中的,3,号区,plot(x,y);title(sin(x);axis(0,2*pi,-1,1);,subplot(4,4,4);%,选择,44,个区中的,4,号区,plot(x,z);title(cos(x);axis(0,2*pi,-1,1);,subplot(4,4,7);%,选择,44,个区中的,7,号区,plot(x,t);title(tangent(x);axis(0,2*pi,-40,40);,subplot(4,4,8);%,选择,44,个区中的,8,号区,plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40);,目录,36,37,4.1.3,绘制二维图形的其他函数,函数名,功能,函数名,功能,area,填充面积图,pie,圆饼图,bar,条形图,plotmatrix,绘矩阵点图,barh,水平柱图,ribbon,以三维带形式画二维线,comet,慧星形轨线,stem,火柴杆图,errorbar,误差条形图,stairs,台阶图,gplot,以图论方式绘图,contour,等高线图,feather,箭头图,contourf,填充等高线图,fill,填充二维多边形,clabel,等高线图仰角标签,pcolor,伪色图,rose,扇形统计图,quiver,场图,hist,直方统计图,voronoi,Voronoi,图,pareto,Pareto,图表,polar,极坐标图,38,例:在平面上绘制,peaks,矩阵的等值线。,z=peaks;,contour(z,6);,39,1.,其他形式的线性直角坐标图,在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:,bar(x,y,选项,),条形图,stairs(x,y,选项,),阶梯图,stem(x,y,选项,),fill(x1,y1,选项,1,x2,y2,选项,2,),目录,40,例:画一个钟形曲线,bar(randn(1,1000),x=-2:0.1:2;,y=exp(-x.*x);,bar(x,y),41,例,4.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);,目录,42,43,例,4.9 bar(),的用法举例,Y=round(rand(5,3)*10);,subplot(2,2,1),bar(Y,group),title Group,subplot(2,2,2),bar(Y,stack),title Stack,subplot(2,2,3),barh(Y,stack),title Stack,subplot(2,2,4),bar(Y,1.5),title Width=1.5,44,2,极坐标图,polar,函数用来绘制极坐标图,其调用格式为:,polar(theta,rho,选项,),其中,theta,为极坐标极角,,rho,为极坐标矢径,选项的内容与,plot,函数相似。,例,4.9,绘制,=sin(2)cos(2),的极坐标图。,程序如下:,theta=0:0.01:2*pi;,rho=sin(2*theta).*cos(2*theta);,polar(theta,rho,k);,目录,45,46,3,对数坐标图形,MATLAB,提供了绘制对数和半对数坐标曲线的函数,调用格式为:,半对数坐标,semilogx(x1,y1,选项,1,x2,y2,选项,2,),semilogy(x1,y1,选项,1,x2,y2,选项,2,),对数坐标,loglog(x1,y1,选项,1,x2,y2,选项,2,),用常用对数刻度,即本来刻度为,0,1,2,处现为,1,10,100,,,目录,47,例,4.10,绘制,y=10 x,2,的对数坐标图并与直角线性坐标图进行比较。,程序如下:,x=0:0.1:10;,y=10*x.*x;,subplot(2,2,1);plot(x,y);title(plot(x,y);grid on;,subplot(2,2,2);semilogx(x,y);title(semilogx(x,y);grid on;,subplot(2,2,3);semilogy(x,y);title(semilogy(x,y);grid on;,subplot(2,2,4);loglog(x,y);title(loglog(x,y);grid on;,目录,48,49,4.,精确绘图函数,对于那些变化剧烈的函数,可用,fplot,函数来进行较精确的绘图,该函数会对剧烈变化处进行较密集的取样,调用格式为:,fplot(fname,lims,tol,选项,),(m,文件函数名须加引号,,绘制由字符串,fname,指定函数名的函数在,x,轴区间为,lims=xmin,xmax,的函数图,若,lims=xmin,xmax,ymin,ymax,则,y,轴也被输入限制,其中,tol1,用来指定相对误差精度,默认值为,0.001,。),目录,50,例如:绘制函数,sin(1/x),在,x=0,附近的变化情况。,fplot(sin(1/x),0.02 0.2,1e-3);,%0.02 0.2,是绘图范围,51,52,5.,其他形式的图形,MATLAB,提供的绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图(用,pie,函数)、复数的相量图(用,compass,函数绘制从原点向外发射的向量图)等等。,目录,53,例,4.12,绘制图形:,(1),某次考试优秀、良好、中等、及格、不及格的人数分别为:,7,17,23,19,5,,试用饼图作成绩统计分析。,(2),绘制复数的相量图:,3+2i,、,4.5-i,和,-1.5+5i,。,程序如下:,subplot(1,2,1);,pie(7,17,23,19,5);legend(,优秀,良好,中等,及格,不及格,);,title(,饼图,);,subplot(1,2,2);,compass(3+2i,4.5-i,-1.5+5i);title(,相量图,);,54,55,4.2,三维图形,4.2.1,绘制三维曲线的最基本函数,plot3,函数与,plot,函数用法十分相似,其调用格式为:,plot3(x1,y1,z1,选项,1,x2,y2,z2,选项,2,xn,yn,zn,选项,n),其中,xi,yi,zi,为,3,个相同长度的向量。,例:作螺旋线,x=sint,y=cost,z=t,56,57,例,4.13,绘制空间曲线。,X=8cost,y=4 sint,z=-4 sint,程序如下:,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(Line in 3-D Space);text(0,0,0,origin);,xlabel(X),ylabel(Y),zlabel(Z);grid;,58,59,4.2.2,绘制三维曲面,1,平面网格坐标矩阵的生成,(1),利用矩阵运算生成。,x=a:dx:b;y=(c:dy:d);,X=ones(size(y)*x;,Y=y*ones(size(x);,(2),利用,meshgrid,函数生成。,x=a:dx:b;y=c:dy:d;,X,Y=meshgrid(x,y);%,表示生成一个横坐标起始于,a,步长为,dx,终止于,b,;纵坐标起始于,c,步长为,dy,终止于,d,的网格分割。,(X,i,Y,j,),代表网格的坐标。,目录,60,产生一个小网格:,X,Y=meshgrid(0:3,0:3),X=,0 1 2 3,0 1 2 3,0 1 2 3,0 1 2 3,Y=,0 0 0 0,1 1 1 1,2 2 2 2,3 3 3 3,61,例,4.14,已知,6x30,,,15y36,,求不定方程,2x+5y=126,的整数解。,程序如下:,x=5:29;y=14:35;,x,y=meshgrid(x,y);%,在,5,2914,35,区域生成网格坐标,z=2*x+5*y;,k=find(z=126);%,找出解的位置,x(k),y(k)%,输出对应位置的,x,y,即方程的解,ans=,8,13,18,23,28,ans=,22,20,18,16,14,62,2.,绘制三维曲面网线(表面)图,曲面网线图有广泛的应用,可以用,mesh(,或,surf),函数生成,其调用格式为,mesh(x,y,z,c),绘制由,4,个矩阵变量的彩色网格面图形。即以矩阵元素,(X,ij,Y,ij,Z,ij,),为空间坐标在空间描点作图,点与点之间用线段连接。,Z,为颜色矩阵,表示不同高度下的颜色范围。如果省略,C,选项,则,MATLAB,会自动地假定,C,Z,,亦即颜色的设定是正比于高度的,这样得到的三维层次比较清楚。使用,mesh,函数时,一般都要调用,meshgrid,函数生成网线节点矩阵,,目录,63,三维曲面表面图可以用,surf,函数生成,,其调用格式为,surf(x,y,z,c),各变量的含义与,mesh,函数类似。,64,例,4.15,用三维曲面图表现函数,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;,65,例,4.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);%,绘制竖立的圆管,axis equal,axis off,hold on,surf(x2,y2,z2);%,绘制平放的圆管,axis equal,axis off,title(,两个等直径圆管的交线,);,hold off,66,例,4.18,用曲面图表现函数,Z=X.2+Y.2,。,clf,x=-4:4;y=x;X,Y=meshgrid(x,y);%,生成,x-y,坐标“网格点”矩阵,Z=X.2+Y.2;,surf(X,Y,Z);hold on,colormap(hot),stem3(X,Y,Z,bo)%用来表现在格点上计算函数值,67,例,4.19,分析由函数,z=x,2,-2y,2,构成的曲面形状及与平面,z=a,的交线。,程序如下:,x,y=meshgrid(-10:0.2:10);,z1=(x.2-2*y.2)+eps;%,第,1,个曲面,a=input(a=?);z2=a*ones(size(x);%,第,2,个曲面,subplot(1,2,1);mesh(x,y,z1);hold on;mesh(x,y,z2);%,分别画出两个曲面,v=-10,10,-10,10,-100,100;axis(v);grid;%,第,1,子图的坐标设置,hold off;,r0=abs(z1-z2),subplot(1,2,1),sphere,axis equal,title(20*20,个面的球,),subplot(1,2,2),sphere(30),axis equal,title(30*30,个面的球,),71,4.2.3,其他三维图形,条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是,bar3,、,pie3,和,fill3,。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数,contour,和,contour3,绘制。,例,4.22,绘制多峰函数的等高线图。,程序如下:,x,y,z=peaks;,contour3,(,x,y,z,12,k);%,其中,12,代表高度的等级数,xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);,title(contour3 of peaks);,目录,72,73,4.3,三维图形的精细处理,4.3.1,图形的裁剪处理,MATLAB,定义的,NaN,常数可以用于表示那些不可使用的数据,利用这种特性,可以将图形中需要裁剪部分对应的函数值设置成,NaN,,这样在绘制图形时,函数值为,NaN,的部分将不显示出来,从而达到对图形进行裁剪的目的。,目录,74,例,4.22,裁掉例,4.15,三维曲面图中,z0.25,部分。,程序如下:,x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);,I,J=find(z0.25);,for ii=1:length(I),z(I(ii),J(ii)=NaN;,end,surf(x,y,z);,目录,75,76,4.3.2,视点处理,MATLAB,提供了设置视点的函数,view,。其调用格式为:,view(az,el),其中,az,为方位角,,el,为仰角,它们均以度为单位。系统缺省的视点定义为方位角,-37.5,仰角,30,。,目录,77,例,4.23,绘制两个球面,其中一个球在另一个球里面,将外面的球裁掉一部分,使得能看见里面的球。,程序如下,:,x,y,z=sphere(20);,%,生成外面的大球,z1=z;,z1(:,1:4)=NaN;%,将大球裁掉一部分,c1=ones(size(z1);,surf(3*x,3*y,3*z1,c1);,%,生成里面的小球,hold on,z2=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);,grid on,hold off,78,例,4.24,从不同视点绘制多峰函数曲面。,程序如下:,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),目录,79,80,4.3.3,色彩处理,1.,颜色的向量表示,MATLAB,除用字符表示颜色外,还可以用含有,3,个元素的向量表示颜色。,2.,色图,色图是,m3,的数值矩阵,它的每一行是,RGB,三元组。色图矩阵可以人为地生成,也可以调用,MATLAB,提供的函数来定义色图矩阵。,除,plot,及其派生函数外,,mesh,、,surf,等函数均使用色图着色。图形窗口色图的设置和改变,使用函数:,colormap(m),其中,m,代表色图矩阵。,3.,三维表面图形的着色,三维表面图实际上就是在网格图的每一个网格片上涂上颜色。,surf,函数用缺省的着色方式对网格片着色。除此之外,还可以用,shading,命令来改变着色方式。,目录,81,例,4.24,3,种图形着色方式的效果展示。,程序如下:,z=peaks(20);colormap(copper);,subplot(1,3,1);surf(z);,subplot(1,3,2);surf(z);shading flat;,subplot(1,3,3);surf(z);shading interp;,目录,82,83,4.3.4,光照处理,MATLAB,提供了灯光设置的函数,其调用格式为:,light(Color,选项,1,Style,选项,2,Position,选项,3),例,4.25,光照处理后的多峰函数曲面。,程序如下:,z=peaks(20);,subplot(1,2,1);surf(z);,light(Posi,0,20,10);shading interp;hold on;,plot3(0,20,10,p);text(0,20,10,light);,subplot(1,2,2);surf(z);,light(Posi,20,0,10);shading interp;hold on;,plot3(20,0,10,p);text(20,0,10,light);,目录,84,85,4.4,图像与动画,4.4.1,图像,1.imread,和,imwrite,函数,imread,和,imwrite,函数分别用于将图像文件读入,MATLAB,工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。,2.image,和,imagesc,函数,这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用,colormap,函数设置图像色图。,目录,86,例,4.22,在,E,盘根目录下有一图像文件,building.jpg,,在图形窗口显示该图像。,程序如下:,x,cmap=imread(e:building.jpg);%,读取图像的数据阵和色图阵,image(x);colormap(cmap);,axis image off%,保持宽高比并取消坐标轴,目录,87,4.4.2,动画,1.getframe,函数,getframe,函数可截取每一幅画面信息而形成一个很大的列向量。该向量可保存到一个变量中。显然,保存,n,幅图就需一个大矩阵。,2.moviein,函数,moviein(n),函数用来建立一个足够大的,n,列矩阵。该矩阵用来保存,n,幅画面的数据,以备播放。,3.movie,函数,movie(m,n),函数以每秒,n,幅图形的速度播放由矩阵,m,的列向量所组成的画面。,目录,88,例,4.23,播放一个直径不断变化的球体。,程序如下,x,y,z=sphere(50);,m=moviein(30);%,建立一个,30,列大矩阵,for i=1:30,surf(i*x,i*y,i*z)%,绘制球面,m(:,i)=getframe;%,将球面保存到,m,矩阵,end,movie(m,10);%,以每秒,10,幅的速度播放球面,目录,89,4.4,隐函数绘图,MATLAB,提供了一个,ezplot,函数绘制隐函数图形,下面介绍其用法。,(1),对于函数,f=f(x),,,ezplot,函数的调用格式为:,ezplot(f),:在默认区间,-2x2,绘制,f=f(x),的图形。,ezplot(f,a,b),:在区间,axb,绘制,f=f(x),的图形。,90,(2),对于隐函数,f=f(x,y),,,ezplot,函数的调用格式为:,ezplot(f),:在默认区间,-2x2,和,-2y2,绘制,f(x,y)=0,的图形。,ezplot(f,xmin,xmax,ymin,ymax),:在区间,xminxxmax,和,yminyymax,绘制,f(x,y)=0,的图形。,ezplot(f,a,b),:在区间,axb,和,ay b,绘制,f(x,y)=0,的图形。,91,(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 x=(0:pi/100:2*pi);,y1=2*exp(-0.5*x)*1,-1;,x1=(0:12)/2;,y2=2*exp(-0.5*x).*sin(2*pi*x);,y3=2*exp(-0.5*x1).*sin(2*pi*x1);,line(x,y1,LineStyle,:,color,g);,line(x,y2,LineStyle,-,color,b);,line(x1,y3,LineStyle,none,Marker,p,color,r);,title(,曲线及其包络线,);,xlabel(independent variabl
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服