第四节matlab图形工具箱Matlab不仅具有强大的数值计算和符号计算功能,也同样具有非常强大的二维和三维绘图功能。一、二维曲线的绘制曲线绘制的基本函数:plot绘制线性比例的二维曲线line绘制线性比例的二维或三维曲线loglog绘制双对数比例的二维曲线semilogx绘制x轴为对数比例的二维曲线semilogy绘制y轴为对数比例的二维曲线一、二维曲线的绘制数据图形绘制方法:Plot命令是matlab中最简单,而且使用最广泛的一个绘图命令,用来绘制二维曲线。语法:plot(x)%绘制以x为纵坐标的二维曲线。plot(x,y)%绘制以x为横坐标、y为纵坐标的二维曲线。一、二维曲线的绘制1、用plot(x)命令绘制x向量曲线例如:x1=[123]plot(x1)x2=[010]plot(x2)一、二维曲线的绘制2、用plot(x,y)命令绘制向量x和y的曲线例:x1=0:0.1:2*pi;y1=sin(x1);plot(x1,y1)x2=[011223]y2=[110011]plot(x2,y2)一、二维曲线的绘制3、用plot(x)命令绘制矩阵x的曲线以矩阵x的每一列绘制一条曲线。例:x1=[123;456]plot(x1)x2=peaks;plot(x2)一、二维曲线的绘制4、多个图形绘制的方法(1)指定图形窗口前面的绘图命令所生成的图形都是在默认的“FigureNo.1”窗口中绘制的,当第二次使用plot命令时,就将第一次绘制的图形覆盖了。因此,如果需要多个图形窗口同时打开时,可以使用figure语句。一、二维曲线的绘制语法:figure(n):产生新图形窗口。(2)同一窗口多个子图。如果需要在同一窗口中布置几幅独立的子图,可以在plot命令前加上subplot命令将一个图形窗口划分为多个区域,每一个区域一幅子图。一、二维曲线的绘制语法:subplot(m,n,k)使m*n幅子图中的第k幅成为当前图。例:x=0:0.1:2*pi;subplot(2,2,1)plot(x,sin(x))subplot(2,2,2)一、二维曲线的绘制plot(x,cos(x))subplot(2,2,3)plot(x,sin(3*x))subplot(2,2,4)plot(x,cos(3*x))如果在使用绘图命令之后,想清除图形窗口画其他图形,应使用’clf’命令清除。一、二维曲线的绘制(3)、同一窗口多次叠绘在当前坐标系中绘图时,每调用一次plot函数,会擦掉图形窗口中已有的图形。为了在一个坐标系中增加新的图形对象,可以用”hold”命令来保留原图形对象。语法:holdon保留holdoff不保留hold在两种情况中切换ishold查询当前的状态,on返回1,off返回0一、二维曲线的绘制例:x1=0:0.1:2*pi;plot(x1,sin(x1))holdonx2=-pi:0.1:pi;plot(x2,cos(x2))一、二维曲线的绘制6、曲线的线形、颜色和数据点形语法:plot(x,y,’s’)颜色:黄色:y紫色:M青色:c红色:r绿色:g蓝色:b白色:w黑色:k数据点间连线:实线(默认)点线::点划线:-.虚线:--一、二维曲线的绘制数据点形实点标记:.圆圈标记:。等等,其他更多的可以查相关的资料。例如:x=0:0.1:2*pi;plot(x,sin(x),’r-.’):用红色点划线画出曲线plot(x,cos(x),’b:*’)一、二维曲线的绘制6、交互式图形命令(1)ginput命令ginput命令与其他图形命令的原理不同,不是把数据表现在图形上,而是从图上获取数据。因此,ginput命令在数值优化、工程设计中十分有用,仅适用于二维图形。一、二维曲线的绘制语法:[x,y]=ginput(n)用鼠标从图形上获取n个点的坐标(x,y),x,y用来存放所取点的坐标。(2)、gtext命令gtext命令是把字符串放置到图形中鼠标所指定的位置上,该命令对二维、三维图形都适用。一、二维曲线的绘制语法:getext(‘s’)%用鼠标把字符串放置到图形上。例:x=0:0.1:2*pi;plot(x,sin(x))[m,n]=ginput(2)gtext(‘2\pi’)%特殊符号,相关内容可以查阅相关资料。一、二维曲线的绘制对于图形坐标的控制,请看图片自己在上机实习的时候学会!一、二维曲线的绘制绘制函数的图形:语法:fplot(‘fun’,lim,’s’):绘制函数fun的图形.说明:fun为要绘制图形的函数,lim为图形的范围,如:[0,2*pi],s为图形所用的点型,线型和颜色的设定,与plot命令相同.一、二维曲线的绘制例:fplot(‘atan(x)’,[-6,6],’r:*’)holdonfplot(‘sin(x)’,[-2*pi,2*pi],’y-.o’)一、二维曲线的绘制绘制极坐标图形:语法:polar(theta,rho,’s’)绘制极坐标函数rho的图形.说明:theta为极角的取值向量,rho为函数表达式,如,s为点型,线型和颜色.)cos1(2r一、二维曲线的绘制例:绘制心型线的极坐标图形.theta=0:0.01:2*pi;polar(theta,2*(1-cos(theta)),’-.k’))cos1(2r二、三维图形的绘制1、plot3命令plot3命令是三维绘图命令中最容易理解的,该命令是用来绘制三维曲线的,使用方法和plot命令很相似。语法:plot3(x,y,z,’s’)%绘制一条三维曲线plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’…)%绘制多条三维曲线。‘s’表示曲线的颜色和线型,用法同二维的情况。二、三维图形的绘制例:x=0:0.1:20*pi;plot3(x,sin(x),cos(x))(2)绘制三维网图形和曲面图1’三维网线图mesh(z);%z为一个矩阵说明:当只有参数z时,以z矩阵的行下标作为x坐标,把z的列下标当作y坐标,对应的矩阵中的数为z坐标,得到一个点,把所有点用网线连接而成图形。二、三维图形的绘制mesh(x,y,z)说明:以x中的元素为x坐标,y,z中对应元素分别为y,z坐标得到点,然后用网线连接。注意:x,y,z应该是同型矩阵。例如:x=[1234;1234;1234]mesh(x)y=peaks%生成一个49阶的高斯分布方阵mesh(y)二、三维图形的绘制思考:怎样绘制出的图形呢?22zxyMeshgrid命令:语法:[xx,yy]=meshgrid(x,y)说明:将x(1*n)向量和y(1*m)向量转换为(n*m)的矩阵。二、三维图形的绘制例:x=[1234]y=[567][xx,yy]=meshgrid(x,y)分析一下结果!二、三维图形的绘制例:分析一下每一步的结果:x=linspace(-5,5,50);y=linspace(-5,5,50);[xx,yy]=meshgrid(x,y);zz=xx.^2+yy.^2;mesh(xx,yy,zz)二、三维图形的绘制mesh命令的其他几种格式:meshc命令为立体网状图加等高线;meshz命令为立体网状图加“围裙”例:meshz(xx,yy,zz)meshc(xx,yy,zz)看效果。二、三维图形的绘制2‘三维曲面图语法:surf(z)surf(x,y,z)说明:意义与mesh命令相同,只是图形不是网线而是曲面。三、特殊图形的绘制1、条形图语法:bar(x,y,width)%画条形图bar3(x,y,width,’参数’)%画三维条形图说明:x是横坐标向量,省略时默认值是1:m,m为y的向量长度;y是纵坐标,当y是向量时,每个元素对应一个竖条,当y是矩阵时,将画出m组竖条,每组包含n条;width是竖条的宽度。默认时为0.8,(把bar命令改为barh命令时将绘制出水平的条形图)。三维的条形图中的参数可以detached,grouped,stacked三个,分别表示不同的显示方式.三、特殊图形的绘制例:x=3:6;y=[5.3130.45.111.81.73.78.10.61.57.74.5]bar(x,y)barh(x,y)bar3(x,y,’grouped’)三、特殊图形的绘制2、饼图语法:pie(x)说明:绘制数据x的饼图,参数x为向量时,则绘制向量中各元素在向量的元素和中所占的比例;若x是矩阵,则绘制矩阵中各元素在矩阵所有元素和中所占的比例。三、特殊图形的绘制语法:pie(x,explode)说明:x与前一个命令相同,explode为与x相同大小的0-1矩阵,在饼图中x对应于explode中的非零元会从饼图中心分离出来。例:x=[12345]explode=[10100]pie(x)pie(x,explode)三、特殊图形的绘制语法:pie3(x)说明:绘制三维饼图,x的意义与二维时相同。语法:pie3(x,explode)说明:绘制三维饼图,x和explode的定义与二维时相同。例:pie3(x)pie3(x,explode)三、特殊图形的绘制3、散点图语法:scatter(x,y,参数,’颜色’)说明:绘制由向量x,y的对应分量(xi,yi)的散点图,参数为数值,控制点的大小,颜色与plot命令相同。x=rand(1,50);y=rand(1,50);scatter(x,y,15,‘r’)三、特殊图形的绘制语法:scatter3(x,y,z,参数,’颜色’)说明:绘制x,y,z的三维散点图。其他设置与二维时相同。例:x=rand(1,50);y=rand(1,50);z=rand(1,50);scatter3(x,y,z,5,’b’)四、符号函数图形的绘制1、绘制一元函数的图形语法:ezplot(f,[dom])说明:f为函数的表达式,dom设定自变量x的区域,默认区域为[-2pi,2pi]。例:symsxf=x^2+3*x+1ezplot(f,[-10,10])四、符号函数图形的绘制2、绘制二元函数的图形语法:ezsurf(f,[dom],n)说明:f为函数表达式,[dom]为变量x,y的范围,默认为[-2pi,2pi,-2pi,2pi],n为图形的栅格点的数目,默认为60。例:symsxyf=sin(x^2+y^2)ezsurf(f,[-3,3,-3,3])3、符号函数运算器funtool的应用。