-1-画图1.基本二维一元函数作图(1)MATLAB的绘图窗口用figure命令可产生可编辑的图形窗口,点击窗口中菜单“Insert”的下拉菜单各选项,可以在图形编辑窗口中添加各种图形,如图所示。figure图MATLAB图形编辑器(2)绘图基本线型和颜色表基本线型和颜色色彩符号颜色数据点形式标记符号线型符号线型y黄色+加号-实线m紫色o圆圈--虚线c青色*星号:点线r红色.点-.点划线g绿色x十字b蓝色s矩形w白色d菱形k黑色^上三角v下三角右三角左三角p五边形h六边形-2-(3)常用绘图函数绘图基本命令plot(x,y,‘r+-’)离散数据画函数曲线图ezplot(y,[a,b])连续函数y在区间[a,b]上做曲线图polar(t,r)极坐标绘曲线图holdon保持图形holdoff取消保持图形clf删除图形subplot(m,n,p)分块绘图,分割成m行n列,p为编号plot(x1,y1,x2,y2)同一图中绘制多条曲线gridon(off)图形窗口中添加(去掉)网格zoomon(off)允许(不允许)对图形缩放ginput(n)用鼠标获取图形中n个点的坐标fill填充二维坐标中的二维图形patch填充二维或三维坐标中的二维图形axis([xmin,xmax,ymin,ymax])确定坐标系的范围axis(‘equal’)各坐标轴刻度增量相同axis(‘on’)返回(缺省的)坐标轴显现状态colormap(cm)生成色图cm所指定的色彩对照表[x,y,z]=meshgrid(x,y,z)三维网格坐标的生成slice(x,y,z,xi,yi,zi,n)绘制三维物体切片图绘图的标注命令xlabel(‘x轴’)x轴加标志’x轴’ylabel(‘y轴’)y轴加标志’y轴’zlabel(‘z轴’)z轴加标志’z轴’title(‘f曲线图’)加图名“f曲线图”legend(‘f(x)’)为图形添加图例text(x,y,’文本’)在指定位置添加文本字符串gtext(‘文本’)用鼠标在图形上放置文本2.离散数据绘图法第1步:首先定义自变量x的取值向量第2步:再定义函数y的取值向量第3步:用plot(x,y)命令给出平面曲线图在绘图参数中可以给出绘制图形的线型和颜色的参数。例1plot(x,y,’r-*’)是用红色的实线,数据点为*型绘图,如图所示。-3-绘图结果plot绘图命令的几种格式:(1)plot(y)当只有一个参数时,plot以y的值为纵坐标,横坐标为1开始的自然数,长度与y相同。(2)plot(x,y)其中x与y是同维向量。例2画曲线y=sinx,x∈[0,2π]解程序如下:x=linspace(0,2*pi,30);%零到2pi之间等分取30个节点y=sin(x);plot(x,y)或:x=0:0.1:2*pi;%零到2pi之间步长0.1y=sin(x);plot(x,y)运行结果如图所示。例2运行结果例3运行结果例3做出数列nnnx)11(的点图,观察当n时nx的变化趋势。解程序如下:-4-n=1:100;xn=(1+1./n).^n;%这里应用./,.^运算,plot(n,xn,'.')程序中取n值从1到100,可以看到随着n的增大,nx逐渐趋于定值e。(3)plot(x1,y1,x2,y2,…)在同一窗口中绘制多条曲线。例4x1=0:0.1:2*pi;x2=1:0.1:3*pi;plot(x1,sin(x1),x2,cos(x2));运行结果如图所示。上面程序等价于x1=0:0.1:2*pi;x2=1:0.1:3*pi;plot(x1,sin(x1))holdon%保持画板处于画图状态plot(x2,cos(x2));图例4运行结果(4)plot(x,y,选项)其选项包括线型、颜色、数据点标记符号等。例5plot(x1,sin(x1),‘:*r’);表示用点线线型、*号数据点标记红颜色绘图。plot(x,y,'-.or')结合x和y,画出点划线(-.),在数据点(x,y)处画出小圆圈(o),线和标记都用红色画出。其中定义符(即字符串)中的字母、符号可任意组合。若没有定义符,则画图命令plot自动用缺省值进行画图。若仅仅指定了标记符,而非线型,则plot只在数据点画出标记符。如:plot(x,y,’d’)plot(t,sin(2*t),'-mo','LineWidth',2,'MarkerEdgeColor','k',…'MarkerFaceColor',[.491.63],'MarkerSize',12)-5-3.一元符号表达式函数绘图法第1步:首先定义x是符号变量,再定义y是x的符号表达式函数。第2步:用绘图命令ezplot(画隐函数图形)。程序如下:ezplot(‘x*y=sin(x*y)-y’)画曲线x*y=sin(x*y)-yezplot的几种格式:(1)ezplot(f)表示在默认区间-2*pix2*pi上绘制函数f(x)的图形。(2)ezplot(f,[a,b])表示在给定区间axb上绘制函数f(x)的图形。(3)ezplot(f(x,y))表示在默认区间-2*pix2*pi,-2*piy2*pi上绘制隐函数f(x,y)=0的图形。(4)ezplot(f(x,y),[a,b,c,d])表示在给定区间axb,cyd上绘制隐函数f(x,y)=0的图形。(5)ezplot(x,y)表示在默认区间0t2*pi上绘制由参数方程x=x(t),y=y(t)确定的一元函数图形。(6)ezplot(x,y,[a,b])表示在给定区间atb上绘制由参数方程x=x(t),y=y(t)确定的一元函数图形。例6绘制函数xy1sin在],[x内的图像。解程序如下:symsxezplot(sin(1/x),[-pi,pi])运行结果如图所示,从图中可以看出0x为函数x1sin的振荡间断点。例6运行结果例7函数xxycos在),(内是否有界?-6-解要绘制函数xxycos在),(内的图像,可先绘制]100,100[x内的图像,如图所示,从图中可以看出当x时函数为无穷大。程序如下:ezplot(‘x*cos(x)’,[-100000,100000])运行结果如图所示。图例7运行结果例8画出参数方程x=sin3tcost,y=sin3tsint在[0,π]上的图形。解程序如下:ezplot(’sin(3*t)*cos(t)’,’sin(3*t)*sin(t)’,[0,pi]);运行结果如图。例8运行结果-7-5.在一个图形窗口中绘制多条曲线(1)在同一个图形中用图形保持命令绘制多条曲线命令:holdon打开图形保持holdoff关闭图形保持例10画幂函数kxy(k=1,2,3,4)的图形。解程序如下,运行结果如图。x=-1:0.1:1;fork=1:4y=x.^k;plot(x,y,‘r’);holdon;endholdoff例10运行结果(2)分块函数命令:subplot(m,n,p)将图形窗口分割为m行n列的子窗口,选定p(横着数)号子窗口为当前窗口。例11将函数xysin1,xycos2,23xy,xey4分块绘制在同一窗口。解程序如下:subplot(2,2,1)fplot('sin(x)',[-pi,pi],'r')title('sin(x)')subplot(2,2,2)fplot('cos(x)',[-pi,pi],'m:')title('cos(x)')subplot(2,2,3)fplot('x^2',[-2,2],'.-')title('x^2')subplot(2,2,4)-8-fplot('exp(x)',[-3,3],'k')title('exp(x)')运行结果如图。例10运行结果4.一元极坐标绘图命令:polar(t,r)其中t和r分别为角度向量和幅值向量,且向量长度相同。例9的绘图程序如下。t=0:0.1:4*pi;r=cos(t/6)+0.5;polar(t,r)例9运行结果-9-空间曲线绘图自变量t为数组,x、y、z是以t为参数的函数数组。绘图命令:plot3(x,y,z)例1画空间螺旋线tztytxsincos解程序如下:t=0:pi/50:10*pi;plot3(cos(t),sin(t),t)xlabel('x');ylabel('y');zlabel('z');gridon例2画三维曲线tztytx2sinsin解程序如下:t=0:0.05:100;x=t;y=sin(t);z=sin(2*t);plot3(x,y,z)xlabel('x');ylabel('y');zlabel('z')3.空间曲面绘制(运算一定要点运算)(1)一般曲面的绘制第1步:首先将自变量(x,y)由向量给出;第2步:然后由[x,y]=meshgrid(x,y)构成网格矩阵;第3步:给出曲面函数矩阵:z=f(x,y);第4步:调用绘制曲面函数绘制曲面。绘制曲面函数:plot3(x,y,z)线条图mesh(x,y,z)网格图meshc(x,y,z)具有基本等高线的网格图meshz(x,y,z)带有基准平面的网格图surf(x,y,z)表面图surfc(x,y,z)具有基本等高线的表面图surfl(x,y,z)具有光照效果的表面图surface(x,y,z)得到表面图在xOy面的投影例3绘制空间曲面之旋转抛物面22yxz。-10-解程序如下:x=-5:0.5:5;y=x;%y的取值与x相同[x,y]=meshgrid(x,y);z=x.^2+y.^2;%注意符号.^的使用mesh(x,y,z)若要更形象的看旋转抛物面的图像,可使用axis命令选择坐标轴的范围,输入axis([-1010-1010015]);也可用上面列出的其他绘图函数来绘制曲面,绘制的图像效果稍有差别,如下面的程序段,将不同函数绘制的旋转抛物面绘制在同一个图形窗口中。x=-5:0.5:5;y=x;[x,y]=meshgrid(x,y);z=x.^2+y.^2;subplot(2,2,1);meshz(x,y,z)subplot(2,2,2);meshc(x,y,z)subplot(2,2,3);surf(x,y,z)subplot(2,2,4);surfc(x,y,z)例2作出平面yxz326的图形,其中20,30yx。解程序如下:clcclear[X,Y]=meshgrid(0:0.1:3,0:0.1:2)Z=6-2*X-3*Y;mesh(X,Y,Z)例3作出函数2214yxz的图形。解程序如下:x=-2:0.05:2;y=-2:0.05:2;[x,y]=meshgrid(x,y);z=4./(1+x.^2+y.^2);mesh(x,y,z)例4作出函数22yxxyez的图形。解程序如下:x=linspace(-3,3,50);-11-y=linspace(-3,3,50);[x,y]=meshgrid(x,y);z=-x.*y.*exp(-x.^2-y.^2);mesh(x,y,z)例5作出函数)94cos(22yxz的图形。解程序如下:x=linspace(-1,1,50);y=linspace(-1,1,50);[x,y]=meshgrid(x,y);z=cos(4.*x.^2+9.*y.^2);mesh(x,y,z)例6作出椭球面1194222zyx的图形。解这是多值函数,该曲面的参数方程为:uzvuyvuxcossinsin3cossin2,(20,0vu)程序如下:[U,V]=meshgrid(0:0.1:pi,0:0.1:2*pi)X=2*sin(U).*cos(V);Y=3*sin(U).*sin(V);Z=cos(U);mesh(X,Y,Z)%可用surf等其它绘制曲面函数surf(X,Y,Z)例7作出单叶双曲面194122