已阅读5页,还剩170页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章MATLAB中的绘图和动画制作,3.1图形绘制3.2图形标注3.3对数和极坐标系中图形绘制3.4复杂图形绘制3.5坐标轴控制3.6颜色控制3.7高级绘图函数3.8图形函数习题,3.1图形绘制,这里以产生一个简单的正弦函数曲线为例来说明图形的绘制,这一过程在MATLAB中是很简单的。设要产生02之间的正弦函数,则可按下列步骤进行:(1)产生x轴、y轴数据x=0:pi/20:2*pi;y=sin(x);(2)打开一个新的图形窗口figure(1),(3)绘制出正弦曲线plot(x,y,r-)其中r表示以红色实线绘制出正弦曲线。(4)给图形加上栅格线:gridon这样就可以得到如图3.1所示的正弦曲线。从这一过程可以看出,在MATLAB中建立曲线图形是很方便的。,我们还可以将图形窗口进行分割,从而绘制出多条曲线。例如,将图形窗口分割成22的窗格,在每个窗格中分别绘制出正弦、余弦、正切、余切函数曲线,其MATLAB程序为x=0:pi/50:2*pi;k=1265176101;x(k)=;删除正切和余切的奇异点figure(1),subplot(2,2,1)plot(x,sin(x),gridon绘制正弦函数曲线subplot(2,2,2)plot(x,cos(x),gridon绘制余弦函数曲线subplot(2,2,3)plot(x,tan(x),gridon绘制正切函数曲线subplot(2,2,4)plot(x,cot(x),gridon绘制余切函数曲线,图3.1正弦曲线,执行后得到如图3.2所示的三角函数曲线。,图3.2常用三角函数的曲线,3.2图形标注,绘制图形后,还要给图形进行标注。例如,可以给每个图加上标题、坐标轴标记和曲线说明等。给图3.1加上标题和轴标记,可输入title(sin(alpha)xlabel(alpha)ylabel(sin(alpha)则可以得到如图3.3所示的结果。这里alpha表示,取自于Tex字符集,详见附录A的text函数中的字符集。,图3.3含标题的正弦曲线,利用legend函数可对图中的曲线进行说明。例如,在同一张图上可得到y=x2和y=x3曲线,然后利用legend函数对曲线进行标注。MATLAB程序为x=2:.1:2;y1=x.2;y2=x.3;figure(1)plot(x,y1,r-,x,y2,k.),gridonlegend(ity=x2,ity=x3)title(y=x2和y=x3曲线)xlabel(x),ylabel(y),执行后得到如图3.4所示的曲线。从这一示例可以看出,MATLAB标注函数中可以采用中文字符,这极大地方便了用户。特别值得一提的是,在字符串中,“”表示上标,“_”表示下标。,图3.4插图说明使用示例,利用text函数也可以对曲线进行标注。例如,在同一张图上绘制出正弦和余弦曲线,则MATLAB程序为x=0:pi/50:2*pi;y1=sin(x);y2=cos(x);figure(1)plot(x,y1,k-,x,y2,k-),gridontext(pi,0.05,leftarrowsin(alpha)text(pi/4-0.05,0.05,cos(alpha)rightarrow)title(sin(alpha)andcos(alpha)xlabel(alpha),ylabel(sin(alpha)andcos(alpha),图3.5文本标注使用示例,3.3对数和极坐标系中图形绘制,有时变量变化范围很大,如x轴从0.01到100,这时如果仍采用plot绘图,就会失去局部可视性,因此应采用对数坐标系进行绘图。例如,求0.01100之间的常用对数(以10为底的对数),MATLAB程序为x=0.01:.01:100;y=log10(x);figure(1)subplot(2,1,1)plot(x,y,k-),gridontitle(ity=log_10(x)inCartesiancoordinates),ylabel(y),subplot(2,1,2),gridonsemilogx(x,y,k-)半对数绘图title(ity=log_10(x)inSemi-logcoordinates)xlabel(x),ylabel(y),图3.6笛卡尔和对数坐标系中曲线的对比,对于任一矩阵,通过eig函数可求出其特征值,从而了解矩阵的特性,为此希望能够直观地显示出特征值。由于特征值一般为复数,因此可利用polar函数在极坐标系中进行表示。例如,输入:,a=randn(2,2);b=eig(a)c1=abs(b),c2=angle(b)figure(1)subplot(2,1,1)plot(b,rx),gridontitle(PlotusingCartesiancoordinates)subplot(2,1,2)polar(c2,c1,rx)gtext(Plotusingpolarcoordinates),3.4复杂图形绘制,在同一个图形窗口中绘制多条曲线是MATLAB的一大功能,这可以有多种应用方法。第一种方法是将曲线数据保存在nm的矩阵y中,而x为相应的x轴向量n1或1n,则plot(x,y)命令可以在同一个图形窗口中绘制出m条曲线。这种方法非常适用于由其它软件产生的数据,然后由load命令读入到MATLAB中,并绘制出曲线。例如,MATLAB提供了一个多峰函数peaks.m,其函数表达式为,利用这一函数,可以方便地产生多条曲线的数据x,y=meshgrid(-3:0.15:3);产生4141的输入矩阵z=peaks(x,y);计算相应的峰值函数然后利用plot函数可直接绘制出这41条曲线x1=x(1,:);plot(x1,z),gridon这时可得到如图3.9所示的多条曲线。,图3.9多峰函数的多条曲线,绘制多条曲线的第二种方法是在同一个plot函数中分别指定每条曲线的坐标轴数据,即采用plot(x1,y1,x2,y2,)。例如,对于下列两个函数(这是神经网络中的两个重要函数:logsig和tansig):,可分别求出55之间的值,在同一张图上画出曲线,并利用legend函数对曲线进行说明,MATLAB程序为x=-5:.1:5;y1=1./(1+exp(-x);y2=(1-exp(-x).*y1;figure(1)plot(x,y1,r-,x,y2,b.),gridonlegend(logsig函数,tansig函数,4)title(多条曲线),图3.10logsig和tansig函数曲线,绘制多条曲线的第三种方法是利用holdon命令。先在图形窗口中绘制出第一条曲线,然后执行holdon(保持原有图像元素)命令,最后绘制出第二条、第三条等曲线。例如,对于图3.10中的曲线,也可以采用下列的MATLAB程序获得:figure(1)plot(x,y1,r-)holdonplot(x,y2,b-)gridon,利用这种方法在绘制曲线后,可同时在数据点上以特殊记号进行标注。例如,在绘制出简单的正弦函数后,可以用圆圈表示各个数据点,程序如下:x=0:pi/20:2*pi;y=sin(x);figure(1)plot(x,y,r-)holdonplot(x,y,bo),gridontitle(sin(alpha)xlabel(alpha),ylabel(sin(alpha),图3.11正弦曲线,利用plotyy函数可绘制出双y轴的图形,这样在同一张图上表示两条曲线时,可拥有各自的y轴。例如,在同一张纸上绘制出双y轴的y1=sin(t)和y2=2cos(t)函数,MATLAB程序为t=-pi:pi/20:pi;y1=sin(t);y2=2*cos(t);plotyy(t,y1,t,y2),gridontitle(sin(t)andcos(t)text(0,0,leftarrowsin(t)text(pi/2,0,leftarrow2cos(t),执行后可得到如图3.12所示的结果。图中左边轴为第一条曲线的垂直轴,右边轴为第二条曲线的垂直轴,从图中可以看出,虽然y1和y2具有不同的值域,但由于采用了双y轴,因此两条曲线在显示上具有相同的幅值。,图3.12双y轴正余弦曲线,3.5坐标轴控制,利用box函数可以控制图形的上边框和右边框,boxon、boxoff可分别显示和隐去上边框和右边框,box命令为乒乓开关,可以在这两种状态之间切换。为了更加灵活地控制各个边框(坐标轴),可以采用axes命令。例如在0,pi/2之间绘制出y=tan(x)曲线,然后利用boxoff命令去掉边框,MATLAB程序为x=0:.025:pi/2;y=tan(x);figure(1)plot(x,y,r-o),gridonboxofftitle(正切函数),xlabel(角度(弧度),图3.13正切函数曲线,为了更清楚地观察曲线的局部特性,也可以修改坐标轴刻度,例如,对于一个复杂函数y=cos(tan(x),利用plot函数绘制出曲线时,在x=0.5附近区域几乎看不清楚。现在利用axis函数调整x轴的刻度,则可以比较清楚地看到这一局部区域。MATLAB程序为x=0:1/3000:1;y=cos(tan(pi*x);figure(1)subplot(2,1,1),plot(x,y)title(itcos(tan(pix)subplot(2,1,2),plot(x,y)axis(0.40.6-11);title(复杂函数的局部透视),axisequal可使绘制图形的x、y轴等长,这样可以使绘制的圆成为真正的圆。例如:t=0:pi/20:2*pi;figure(1)subplot(2,2,1),plot(sin(t),cos(t)title(圆形轨迹)subplot(2,2,2),plot(sin(t),2*cos(t)title(椭圆形轨迹)subplot(2,2,3),plot(sin(t),cos(t),axissquaretitle(调整后的圆形轨迹)subplot(2,2,4),plot(sin(t),2*cos(t),axissquaretitle(调整后的椭圆形轨迹)执行后得到如图3.16所示的轨迹。,图3.15复杂函数曲线的局部透视,图3.16调整前、后的圆轨迹,利用axisoff命令可以关闭坐标轴的显示,产生不含有坐标轴的图形。例如:t=0:pi/20:2*pi;x,y=meshgrid(t);z=sin(x).*cos(y);figure(1)plot(t,z),axis(02*pi-11)boxoff,axisofftitle(无坐标轴和边框图形)执行后得到如图3.17所示的曲线。,图3.17无坐标轴与边框的曲线,3.6颜色控制,在绘制曲线时可直接指定曲线的颜色,在标注文本如title,xlabel,ylabel,zlabel,text命令中,可利用文本特性Color来指定文本的颜色。例如,下列的MATLAB程序可产生红色的曲线、绿色的标题、蓝色的x与y轴标注和黑色的曲线标注。,x=-pi:pi/20:pi;y=exp(-2*sin(x);figure(1)plot(x,y,r-),gridontitle(绿色的标题(y=e-2sin(x),Color,g)xlabel(蓝色的x轴标注,Color,b)ylabel(蓝色的y轴标注,Color,b)text(0.6,3.8,leftarrow黑色的曲线标注,Color,k),图3.18颜色控制,利用colormap函数可以改变每种颜色的色调,MATLAB提供了许多种不同用途的颜色板。为了进一步了解各种颜色板的颜色,可输入cmap=colormap;L=length(cmap);x=1:L;y=x*ones(size(x);figure(1)bar(x(1:2),y(1:2,:)title(gray颜色板的颜色)colormap(gray),图3.19gray(灰度)颜色板的颜色,MATLAB专门提供了人体脊骨的图像数据(spine),利用bone颜色板可更清晰地显示这一类图像。MATLAB程序为loadspineimage(X)colormapbonetitle(人体脊骨图)执行后得到如图3.20所示的人体脊骨图。,图3.20人体脊骨图,3.7高级绘图函数(部分),除了前面介绍的以二维平面为图形窗口的绘图功能外,MATLAB还提供了一些功能很强的高级绘图函数,如表3.1所示,这里分类给出一些函数的使用说明。,表3.1高级绘图函数,3.7.2等高线绘图1contour功能:绘制矩阵的等高线。格式:contour(Z)contour(X,Y,Z)contour(Z,n)contour(X,Y,Z,n)contour(Z,v)contour(X,Y,Z,v)contour(,LineSpec),说明:contour函数可以绘制出矩阵的等值线,利用clabel函数可以对等值线进行标注。contour(Z)可以绘制出矩阵Z的等值线,其值间隔自动选取;contour(Z,n)可以采用固定的间隔n(n为变量);contour(Z,v)可以在向量v中指定间隔,间隔数必须等于length(v)。在contour(X,Y,Z)、contour(X,Y,Z,n)和contour(X,Y,Z,v)中,X、Y指定x轴和y轴的上、下限,Z为高度值。contour(,LineSpec)可以利用LineSpec指定等高线的形状和颜色。,例如,执行下面程序可以得到如图3.27所示的等高线图形。X,Y=meshgrid(-2:.2:2,-2:.2:3);Z=X.*exp(-X.2-Y.2);C,h=contour(X,Y,Z);set(h,ShowText,on,TextStep,get(h,LevelStep)*2);title(Thecontour)colormapgray,图3.27等高线图形,2contour3功能:绘制出矩阵的三维等高线。格式:contour3(Z)contour3(X,Y,Z)contour3(Z,n)contour3(X,Y,Z,n)contour3(Z,v)contour3(X,Y,Z,v)contour3(,LineSpec),说明:contour3可以绘出三维的等高线,其说明类似于contour函数。例如,执行下面程序可以得到如图3.28所示的等高线图形。X,Y=meshgrid(-2:.25:2);Z=X.*exp(-X.2-Y.2);contour3(X,Y,Z,30)surface(X,Y,Z,EdgeColor,.8.8.8,FaceColor,none)title(Thethree-dimensionalcontour),gridoffview(-15,25),图3.28等高线图形,3contourf功能:绘制并填充二维等高线图。格式:contourf(Z)contourf(X,Y,Z)contourf(Z,n)contourf(X,Y,Z,n)contourf(Z,v)contourf(X,Y,Z,v),说明:contourf函数可以绘制出矩阵的等值线,并在等高线之间用不同的颜色填充,colormap函数会影响显示的颜色。实际上,contourf与contour函数类似,只是填充了颜色,因此其它说明参见contour函数。例如,contourf(peaks(20),10)可以产生峰值函数peaks的等高线,如图3.29所示。,图3.29峰值函数的等高线,3.7.3方向与速度绘图1comet功能:绘制二维彗星图形。格式:comet(y)comet(x,y)comet(x,y,p),说明:彗星图形是一幅生动的图形,其头部用圆圈表示,尾部用直线表示,用来表示数据的轨迹。函数comet(y)可以显示出向量y的彗星图;comet(x,y)可以显示出向量x与y的彗星图;comet(x,y,p)可以指定彗星的长度p*length(y),其中p的缺省值为0.1。例如,执行下面程序可以得到如图3.30所示的彗星图形,同时也给出了向量x和y的时间曲线,如图3.31所示。,t=0:.01:2*pi;x=cos(2*t).*(cos(t).2);y=sin(2*t).*(sin(t).2);figure(1)comet(x,y);figure(2)plot(t,x,k-,t,y,k-),title(Thecurvesofxandy),图3.30彗星图形,图3.31数据x和y曲线,2comet3功能:绘制三维彗星图形。格式:comet3(z)comet3(x,y,z)comet3(x,y,z,p),说明:函数comet3可以显示出向量y的三维彗星图,其它说明类似于comet函数。例如,执行下面程序,可以清楚看到三维的彗星图。t=-10*pi:pi/250:10*pi;figurecomet3(cos(2*t).2).*sin(t),(sin(2*t).2).*cos(t),t);,4feather功能:绘制速度向量图。格式:feather(U,V)feather(Z)feather(,LineSpec),说明:速度向量图为从水平轴等间隔处出发的向量。feather(U,V)可以显示出速度向量图,其中U指定向量终点的x轴坐标,V指定向量终点的y轴坐标;在feather(Z)中,Z为复数,向量的终点由(real(Z),imag(Z)确定;feather(,LineSpec)可以指定绘图的线型、符号和颜色。例如,输入theta=(-90:10:90)*pi/180;r=2*ones(size(theta);u,v=pol2cart(theta,r);feather(u,v);,图3.33速度向量图,图3.34函数的梯度场,9slice功能:绘制立体切片图。格式:slice(V,sx,sy,sz)slice(X,Y,Z,V,sx,sy,sz)slice(V,XI,YI,ZI)slice(X,Y,Z,V,XI,YI,ZI)slice(,method),说明:函数slice可以为测定体积的数据绘制直交的切片图。slice(V,sx,sy,sz)可以绘制出体积V的切片图,sx、sy和sz用于指定相应坐标的方向,V为mnp的阵列。在slice(X,Y,Z,V,sx,sy,sz)中,X、Y、Z为单调的正交间距向量,用于指定绘图的x、y、z轴坐标,每一点的颜色由V值的三维内插算法确定。,例如,为观察函数在-2x2、-2y2、-2z2上的体积情况,可以输入x,y,z=meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v=x.*exp(-x.2-y.2-z.2);xslice=-1.2,.8,2;yslice=2;zslice=-2,0;slice(x,y,z,v,xslice,yslice,zslice),图3.49函数的切片图,11.mesh,meshc,meshz功能:绘制网格曲线。格式:mesh(X,Y,Z)mesh(Z)mesh(,C)mesh(,PropertyName,PropertyValue,)meshc()meshz(),说明:函数mesh、meshc和meshz可以绘制出三维空间上的网格曲线。在mesh(X,Y,Z)中,X、Y为x轴和y轴坐标,Z既为高度值又为颜色值,当X、Y为向量时,设n=length(X)和m=length(Y),则有m,n=size(Z),这时(X(i),Y(j),Z(i,j)定义了三维空间上的点;如果X、Y为矩阵,则X、Y、Z必须尺寸一致,(X(i,j),Y(i,j),Z(i,j)定义了三维空间上的点。在mesh(Z)中,设m,n=size(Z),采用X=1:n和Y=1:m作为x轴和y轴的坐标,Z为高度和颜色值;mesh(,C)可以利用矩阵C指定颜色;mesh(,PropertyName,PropertyValue,)可以设定图形对象的特性。,meshc()则可以在网格曲线的下面绘制出等高线;meshz()则在网格曲线的周围绘制出幕布。例如输入X,Y=meshgrid(-3:.125:3);Z=peaks(X,Y);meshc(X,Y,Z);axis(-33-33-105)title(多峰函数的网格曲线)执行后可得到如图3.51所示的网格曲线。如果利用meshz函数,则可以得到如图3.52所示的网格曲线。,图3.51利用meshc得到的多峰函数的网格曲线,图3.52利用meshz得到的多峰函数的网格曲线,12.meshgrid功能:为三维绘图产生X、Y数据矩阵。格式:X,Y=meshgrid(x,y)X,Y=meshgrid(x)X,Y,Z=meshgrid(x,y,z),说明:meshgrid函数可产生x、y轴向的网格数据。在X,Y=meshgrid(x,y)中,向量x、y分别指定x轴向和y轴向的数据点。当x为n维向量,y为m维向量时,X、Y均为mn的矩阵,X(i,j)和Y(i,j)共同指定了平面上的一点;X,Y=meshgrid(x)等效于X,Y=meshgrid(x,x);X,Y,Z=meshgrid(x,y,z)可以产生三维阵列,它们指定了三维空间上的一个点。,13surf,surfc功能:绘制出三维空间中的曲面图。格式:surf(Z)surf(X,Y,Z)surf(X,Y,Z,C)surf(,PropertyName,PropertyValue)surfc(),说明:surf函数可以绘制出三维空间中的曲面,surfc()可以在曲面下绘制出等高线。其函数说明类似于mesh函数。例如输入x,y=meshgrid(-3:.125:3);z=peaks(x,y);c=ones(size(z);surfc(x,y,z,c),gridontitle(多峰函数的曲面),图3.53多峰函数的曲面,3.8图形函数,表3.2(二维)图形函数,3.8.1基本图形和图形操作1.plot功能:绘制二维图形(曲线)。格式:plot(y)plot(x1,y1,)plot(,PropertyName,PropertyValue,)plot(x1,y1,LineSpec,)h=plot(),说明:当y为实向量时,plot(y)以y的序号作为x轴,以向量y的值作为y轴绘制出二维曲线;当y为复向量时,则plot(y)相当于plot(real(x),imag(y),即y的实部为x轴,虚部为y轴。在后面几种格式中,虚部均被忽略。plot(x1,y1,)可按(x1,y1),(x2,y2),成对绘制出曲线,而且在同一张图上以不同颜色显示。如果xn或yn之一为矩阵,则取矩阵的行或列与另一个向量构成数据对绘制出曲线。,plot(x1,y1,LineSpec,)可绘制出所有由三元组(xn,yn,LineSpec)指定的曲线,其中LineSpec用于指定线型、标记和线颜色。有关LineSpec的内容可参见下面的注释1。plot(,PropertyName,PropertyValue,)可设置图形对象的特性。h=plot()可在绘制出图形的同时,得到图形(曲线)的句柄向量,每条曲线对应于一个句柄值。,表3.3LineSpec指定的线型、颜色和标记,注释2:在利用plot函数绘制多条曲线时,plot自动循环采用颜色板中的各种颜色,而这种颜色板可用colormap函数设置,比如:set(gca,LineStyleOrder,-|-.|-)表示循环使用实线、点画线和虚线。例如,要绘制出,之间的正弦和余弦曲线,利用MATLAB可使编程变得简单、方便,而且可得到各种图形。,MATLAB程序为x=-pi:pi/20:pi;y1=sin(x);y2=cos(x);figure(1)%打开图形窗口subplot(2,2,1),plot(x,y1)%在左上角绘制出正弦曲线gridon,title(Sin(x)%加上栅格和标题subplot(2,2,2),plot(x,y2,r:)%在右上角绘制出余弦曲线(点线)gridon,title(Cos(x)subplot(2,2,3),plot(x,y1,-,x,y2,-)%在左下角绘制出正弦、余弦曲线gridon,title(Sin(x)andCos(x)subplot(2,2,4),plot(x,y1,-,x,y1,ko)%在右下角绘制出正弦曲线gridon,title(Sin(x),图3.56正弦和余弦曲线,4.ploar功能:在极坐标系中绘制图形。格式:polar(theta,rho)polar(theta,rho,LineSpec)说明:polar函数可在极坐标系中绘制出曲线,并可加上极坐标栅格线,其中theta表示极坐标角度,rho表示半径,LineSpec可指定曲线的线型、颜色和标记。,图3.57极坐标系中的曲线,例如输入t=0:.01:2*pi;figure(1)polar(t,sin(2*t).*cos(2*t),-r)执行后得到如图3.57所示的极坐标曲线。,6.figure功能:建立图形(窗口)。格式:figurefigure(h)figure(PropertyName,PropertyValue,)h=figure(),说明:figure可打开一个新的图形窗口,以供后续绘图命令输出图形。当然,当没有打开图形窗口时,直接使用绘图命令可自动打开一个图形窗口。如果已经打开了图形窗口,则绘图命令会在当前图形窗口中绘出图形。figure(PropertyName,PropertyValue,)在建立图形窗口的同时设置其特性,这一点可参见表3.4。,表3.4图形特性(FigureProperties),续表,7.close功能:关闭图形窗口,即删除指定的图形。格式:closecloseallclose(h)closeallhiddenclosenamestatus=close(),说明:close可删除当前的图形(等效于close(gca);close(h)可删除句柄为h的图形,当h为向量或者矩阵时,则close将删除由h指定的所有图形;closename可删除由name(比如figureNo2)指定的图形;closeall可删除所有的图形(不包括句柄隐含的图形);closeallhidden可删除所有的图形(包括句柄隐含的图形)。status=close()除了删除图形外,还可以得到删除操作的状态。1:删除成功。0:删除失败。,8.clf功能:清除当前图形窗口。格式:clfclfreset说明:clf可从当前图形中删除所有的图形对象,但不删除这一图形窗口,这一点与close命令不同。clfreset可在当前图形中删除所有的图形对象,并将所有的图形特性(Position除外)复位到缺省值。,9.gcf功能:获得当前图形的句柄。格式:h=gcf说明:h=gcf可获得当前图形的句柄。当系统中尚未打开图形窗口时,h=gcf可建立一个图形窗口,并返回句柄h。但有时在不存在图形窗口时不希望建立图形,则可输入h=get(0,CurrentFigure)这时会得到一个空阵列h。,10.refresh功能:重画当前图形。格式:refreshrefresh(h)说明:refresh可重新画出当前图形;refresh(h)可重新画出由h指定的图形。,11.plot3功能:绘制出三维图形。格式:plot3(X1,Y1,Z1,)plot3(X1,Y1,Z1,LineSpec,)plot3(,PropertyName,PropertyValue,),说明:plot3(X1,Y1,Z1,)可绘制出三维图形,其中X1、Y1、Z1用于指定曲线的坐标,它非常类似于二维绘图函数plot;lot3(X1,Y1,Z1,LineSpec,)可以指定绘图的线型、标记及颜色;plot3(,PropertyName,PropertyValue,)可以设定图形对象的特性。例如输入t=0:pi/50:8*pi;figure(1)plot3(sin(t),cos(t),t)gridon,axissquaretitle(三维曲线),图3.59简单的三维曲线,又如对于多峰函数,我们可在三维空间中画出三维曲线,MATLAB程序为x,y=meshgrid(-3:.125:3);z=peaks(x,y);figure(1)plot3(x,y,z),gridontitle(多峰函数的三维曲线)执行后可得到如图3.60所示的三维曲线。,图3.60多峰函数的三维曲线,3.8.2图形注释1.title功能:给当前坐标系图形加上标题。格式:title(string)title(,PropertyName,PropertyValue,)title(fname)h=title(),说明:每个坐标系的图形都可以有一个标题,它位于图形顶部的居中位置。title(string)可将指定字符串用作为标题;title(fname)可将执行指定函数fname时产生的字符串作为标题。title(,PropertyName,PropertyValue,)可为标题文本指定特性。h=title()还可以得到标题文本的控制句柄。例如,要将今日的日期作为图标题,则输入title(date)要在标题中包含变量值,则可输入a=32.5;title(ThetemperatureOfPekingis,num2str(a),circ),这时显示结果为ThetemperatureOfPekingis32.5要在标题中包含变量值,并设定标题为黄颜色,则可输入n=3title(Class,int2str(n),Color,y)这时显示结果为(以黄色显示)Class3标题中还可以采用各种字体(如黑体、斜体),如输入title(ity=eomegatau)则产生的标题为y=e,2.text功能:在当前坐标系中建立文本对象。格式:text(x,y,string)text(,PropertyName,PropertyValue,)text(x,y,z,string)h=text()说明:text是一个低级函数,它可将指定的字符串放在图形的指定位置。text(x,y,string)可在图形的(x,y)点上放置指定的字符串,(x,y)的单位由Unit特性决定。text(x,y,z,string)用在三维图形上。,text(,PropertyName,PropertyValue,)可在放置字符串的同时,指定文本的特性,详见表3.5的文本特性;text(,PropertyName,PropertyValue,)用来指定文本的特性。h=text()还可以得到文本对象的句柄。例如,输入figure(1)plot(0:pi/20:2*pi,sin(0:pi/20:2*pi);text(pi,0,leftarrowsin(x),Fontsize,18),表3.5文本特性(TextProperties),续表,图3.61利用text标注曲线,图3.62top、cap、middle、baseline、bottom的相对位置,表3.6Tex字符集,另外,字符串中还可以使用各种字体:bf:黑体。it:斜体。sl:倾斜体。rm:正体。fontnamefonename:指定使用的字体。fontsizefonesize:指定使用的字体尺寸。数学上、下标可以分别采用“”、“_”实现。例如,a_2和bx+y可分别产生a2和bx+y。一些特殊符号如“_”可通过加上前置符“”实现。,3.gtext功能:利用鼠标在二维图形上放置文本。格式:gtext(string)h=gtext(string)说明:gtext(string)可利用鼠标将指定字符串string放在图上的任意位置;h=gtext(string)还可以得到该文本图形对象的句柄。字符串中可采用Tex字符集中的任意字符,也可以控制其正/斜体、上/下标等,详见text函数。,4xlabel,ylabel,zlabel功能:在图形中添加x、y、z轴的标记。格式:xlabel(string)xlabel(,PropertyName,PropertyValue,)xlabel(fname)h=xlabel()ylabel,zlabel有类似格式。,说明:在坐标系的图形中可给x、y、z轴加上标记。xlabel(string)可给x轴上加标记;xlabel(fname)可执行frame,并将输出的字符串用作x轴标记。xlabel(,PropertyName,PropertyValue,)除了添加x轴标记外,还可设定文本特性;h=xlabel()可得到标记文本的句柄。利用ylabel和zlabel可给y、z轴加上标记。有关可设定的文本特性参见text中的表3.5。,5legend功能:给每个坐标系加上插图说明。格式:legend(string1,string2,)legend(h,)legend(strings)legend(,pos)legend(off)h=legend(),说明:legend可在图形的指定位置(缺省时为右上角)给出插图说明,对图中的每一条曲线,legend会在指定文本字符串的边上给出线型、记号及颜色。插图说明框可利用鼠标移动。legend(string1,string2,)可利用string1,string2,来说明当前坐标系中的曲线;在legend(strings)中,strings包含着多个字符串,因此它等效于legend(strings(1,:),strings(2,:),);legend(off)可从当前坐标系中删除插图说明。legend(h,)可对由h指定的坐标系进行插图说明的各种操作。,legend(,pos)可利用pos参数指定插图说明的位置:pos=-1:插图说明放在坐标系边框外的右边。pos=0:插图说明放在坐标系内部。pos=1:插图说明放在坐标系的右上角(缺省情况)。pos=2:插图说明放在坐标系的左上角。pos=3:插图说明放在坐标系的左下角。pos=4:插图说明放在坐标系的右下角。pos=x,y:明确指定插图说明框左下角的位置。h=legend()还可以得到插图说明的句柄。注意,legend中的字符串也可使用Tex字符集,详见text函数。,3.8.3坐标系控制1subplot功能:建立和控制多个坐标系。格式:subplot(m,n,p)subplot(Position,left,bottom,width,height)subplot(h)h=subplot(),说明:subplot可将图形窗口分成矩形窗格,并按行编号,每个窗格上可建立一个坐标系,后续的绘图命令会在当前窗格上绘制图形。subplot(m,n,p)可将图形窗口分割成mn个窗格,并将第p个窗格置成当前窗格。subplot(h)可使句柄为h的坐标系变成当前坐标系。subplot(Position,left,bottom,width,height)可在指定位置建立指定尺寸的坐标系。h=subplot()还可以得到新坐标系的句柄。,subplot还有一种更简捷的格式:subplotmnp它等效于subplot(m,n,p)。但subplot111与subplot(1,1,1)不同,它只是一种早期版本的形式,而subplot(1,1,1)表示删去所有的坐标对象。例如,subplot221可将图形窗口分成四个窗格,每个窗格分别可用subplot221、subplot222、subplot223、subplot224来表示,如图3.63所示。,图3.6322窗格的图形窗口,2.hold功能:在图形窗口中保持当前图形。格式:holdonholdoffhold,说明:hold函数可决定所绘制的图形是添加到图形上,还是取代已绘制的图形。holdon表示保持当前的图形,即新绘制的图形添加到图形上,从而实现一幅图中绘制多条曲线。holdoff表示关闭这种保持特性,因此每次绘图时会自动清除以前已绘制的图形。hold命令可在这两种状态(on,off)之间切换。hold的状态可由ishold函数来测定。,3grid功能:给图形加上栅格线。格式:gridongridoffgrid说明:gridon表示给当前坐标系加上栅格线;gridoff表示从当前坐标系中删去栅格线;grid命令可在这两种状态(on,off)之间切换。,表3.7坐标系特性(AxesProperties),5axis功能:控制坐标轴刻度。格式:axis(xminxmaxyminymax)axisautoaxis(xminxmaxyminymaxzminzmax)axismanualv=axis,说明:axis函数有多种格式,我们这里仅介绍常用的几种。axis函数的功能通常可通过设置坐标系特性来获得。axis(xminxmaxyminymax)可为x轴和y轴设置一个极限范围;axis(xminxmaxyminymaxzminzmax可同时设置x、y、z轴的范围;v=axis可得到当前坐标系的轴范围。axisauto可将当前坐标系的轴范围设置为自动方式,即由绘图数据来确定轴范围,这种格式可指定特定的轴,如axisautox可将x轴设置为自动方式,axisautoyz可将y和z轴设置为自动方式。,6box功能:控制坐标系边框。格式:boxonboxoffbox说明:boxon可在当前坐标系中显示一个边框,这是缺省情况。boxoff可去掉边框,这时图中只含坐标轴;box命令可在这两种状态之间切换。,3.8.4其它重要函数1get功能:获得图形对象的特性。格式:get(h)get(h,PropertyName)a=get(O,FactoryObjectTypePropertyName)P=get(H,pn)a=get(h,Default)a=get(0,Factory)a=get(h,DefaultObjectTypePropertyName),说明:get(h)可获得由h指定的图形对象的所有特性及其当前值;get(h,PropertyName)只得到指定的特性值;在P=get(H,pn)中,H为m维向量,表示多个图形对象,pn为n元阵列,表示多个特性名称,P为mn矩阵,则P中得到了各个图形对象的特性值。a=get(0,Factory)可得到用户可设置特性的出厂值(生产厂家指定值),a为一种结构,其域名为对象特性名,域值为其特性值。当不指定输出变量时,则MATLAB直接将结果显示在屏幕上;a=get(O,FactoryObjectTypePropertyName)可得到指定对象类型的指定特性的出厂值,例如:,a=get(O,FactoryFigureColor)可得到图形颜色的出厂值。a=get(h,Default)可得到指定对象h的当前缺省值;a=get(h,DefaultObject-TypePropertyName)可得到指定对象类型的指定特性的缺省值,例如:A=get(h,DefaultFigureColor)可得到图形颜色的缺省值。,2set功能:设置图形对象的特性。格式:set(H,PropertyName,PropertyValue,)set(H,pn,pv,)set(H,a)set(H,pn,P),说明:set(H,PropertyName,PropertyValue,)可对由H指示的对象设置指定的特性,H可以是向量,这时可设置多个对象的特性;在set(H,a)中,a为结构阵列,这样可对多个对象设置多个特性;在set(H,pn,pv,)中,pn为n元阵列,用来指定多个特性,pv也为n元阵列,用来指定相应的特性值;在set(H,pn,P)中,P为mn元的单元阵列,用于指定多个对象的多个特性。,set函数还有一些其它格式,这里不再赘述,详见set函数的在线帮助。例如,要将当前坐标系的颜色设置成蓝色,则可输入set(gca,Color,b)要将图中所有的线颜色改成黑色,则输入set(findobj(Type,line),Color,k),3rotate功能:沿着指定方向旋转对象。格式:rotate(h,direction,alpha)rotate(,origin)说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浅谈混交林的优点及混交原则
- 毕业论文封面格式模板
- 征兵专业科目考试试题
- “两法衔接”工作存在的问题、原因及其对策
- mba英语课程作文模板
- 客户投诉分析报告投诉原因及改进措施分析
- 汉语言文学论文的提纲
- 我国商业连锁零售企业物流配送的现状及发展趋势研究毕业论文
- 物资管理专业在企业中的作用及意义
- 南通大学2025年全日制专业学位硕士研究生招生专业目录【模板】
- 农村会计考试题库及答案
- 期末测评卷(试卷)2025-2026上学期六年级数学上册(人教版)
- 【MOOC】光学发展与人类文明-华南师范大学 中国大学慕课MOOC答案
- (正式版)JBT 7248-2024 阀门用低温钢铸件技术规范
- GB/T 27024-2014合格评定人员认证机构通用要求
- FZ/T 96016-1995中性粘胶长丝纺丝机
- 2023年上海市黄浦区精神卫生中心医护人员招聘笔试题库及答案解析
- 培智生活语文三年级上册第一课《教师节》
- FANUC发那科机器人控制柜电气培训手册-
- 甲醇制氢投标书课件
- Q∕SY JS0126-2012 清管三通挡条技术要求
评论
0/150
提交评论