第4章 MATLAB 绘图_第1页
第4章 MATLAB 绘图_第2页
第4章 MATLAB 绘图_第3页
第4章 MATLAB 绘图_第4页
第4章 MATLAB 绘图_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 MATLAB绘图4.1 MATLAB二维曲线绘图4.1.1 基本绘图指令1.plot(Y)功能:画一条或多条折线图.例4-1 运行下列命令Y=2,3,5,6;8, 5,7,4;4,5,6,7plot(Y) (2)plot(X,Y)功能:画一条或几条折线图,X,Y可以是向量 或矩阵.例4-2 在-,上,绘制y=sinx的图形.解:MATLAB命令为x=-pi:pi/50:pi;y=sin(x);plot(x,y),grid on 例4-3 画出椭圆 的曲线图.1952222yx解:椭圆的参数方程为 x=5cost y=9sint,(0t2) MATLAB命令为: t=0:pi/50:2*

2、pi; x=5*cos(t); y=9*sin(t); plot(x,y),grid on 例4-4 绘制两条曲线 的图形.)sin(),3sin(xeyxy解:MATLAB命令为:x=-2*pi:pi/50:2*pi;y=sin(x+3);exp(sin(x);plot(x,y),grid on-8-6-4-202468-1-0.500.511.522.53 (3)plot(X1,Y1,X2,Y2,X3,Y3,)功能:在同一图形窗口画出多条折线或曲线。例4-5 在同一图形窗口画出三个函数y=2x,y=cosx,y=sinx的图形,-3x3.解:MATLAB命令为x=-3:0.1:3;y1=2

3、*x;y2=cos(x);y3=sin(x);plot(x,y1,*,x,y2,P,x,y3)legend(2*x,cos(x),sin(x) 2.loglog函数例 4-6 绘制函数y=ex双轴对数图形.解: x=1:10 y=exp(x) loglog(x,y)3.单轴对数图形函数 semilogx和semilogy例 4-7 绘制函数y=ex的单轴对数图形,其中纵轴采用对数坐标,横轴采用线性坐标.解: x=1:10 y=exp(x) semilogy(x,y)4.双坐标轴函数plotyy例 4-8 利用plotyy来绘制多轴标度图形.解: x=0:0.01:20; y1=200*exp(

4、-0.5*x).*sin(x); y2=0.8*exp(-0.5*x).*sin(10*x); ax,h1,h2=plotyy(x,y1,x,y2); set(get(ax(1),ylabel),string,慢衰减) set(get(ax(2),ylabel),string,快衰减) xlabel(时间) title(不同衰减速度对比)4.1.2 基本绘图控制参数(1)图形窗口figure命令格式:figure; figure(n);(2)清除图形窗口clf(3)控制分隔线grid grid on (使用网格线); grid off(取消分隔线);(4)图形的重叠绘制hold (on | o

5、ff)(5)取点指令ginput;ginput(n)例4-9 利用hold指令,grid指令在同一坐标系中画出为两条曲线.y=cosx,y=sinx 0 x2解: x=0:pi/50:2*pi; y1=cos(x);y2=sin(x); plot(x,y1,b*) hold on, plot(x,y2,r.),grid on01234567-1-0.8-0.6-0.4-0.60.814.1.3 坐标轴的控制P434.1.4 线条属性格式:plot(x,y,LineSpec,PropertyName,PropertyValue,.) 其中:LineSpec是指线条的如下三个属

6、性:线型,标记类型及颜色,并用一个字符串来完成.如plot(x,y,-db)1)颜色控制 表4-1 y-黄色 m-洋红 c-青色 r-红色 g-绿色 b-蓝色 w-白色 k-黑色2)标记类型表4-2 标记类型绘图字符数据点绘图字符数据点.黑点D钻石形o小圆圈三角形(向上)差号V三角形(向下)+十字标号三角形(向右)s小方块h六角星p五角星3)线型表4-3 线型控制表线型符号线型-实线:点线-.点划线-虚线4)标记类型控制表线条宽度:linewidth(单位为像素)标记大小:markersize(单位为像素)标记面填充颜色:markerfacecolor(见表4-1)标记周边颜色:markere

7、dgecolor (见表4-1)例4-10 绘制函数y=cos2t的图像,并定义线条的属性。解 MATLAB命令为: t=0:pi/25:2*pi; plot(t,cos(2*t),-mo,linewidth,2,markeredgecolor,k, markerfacecolor,0.49 1 0.63,markersize,10)01234567-1-0.8-0.6-0.4-0.60.814.1.5 图形的标注1.图名标注(在figure中)1)Insert-Title2)Tools-Edit Plot在图形内双击空白区3)使用title函数标注图名 title(str

8、ing) title(.,PropertyName,PropertyValue,.)2.坐标轴标注xlabel(string)xlabel(fname)xlabel(.,PropertyName,PropertyValue,.)ylabel,zlabel与xlabel相同3.图形标注text(x,y,string)text(x,y,z,string)text(.PropertyName,PropertyValue,.)gtext(string)在鼠标 指定位置上标注4.图例标注菜单Insert-legend命令legend(string1,string2,.)4.1.6 一个图形窗口多个子图的

9、绘制subplot(m,n,i)把图形窗口分为m*n个子图,并在第i个子图中画图例 4-11 在同一坐标系中画出两个函数,y=cos2x,y=sinxsin6x的图形,自变量的范围为0 x ,函数y=cos2x用红色星号,函数y=sinxsin6x用蓝色实线,并加图名、坐标轴、图形、图例标注解 MATLAB命令为:x=0:pi/50:pi;y1=cos(2*x);y2=sin(x).*sin(6*x);plot(x,y1,r*,x,y2,b-),grid ontitle(曲线y1=cos(2x)曲线y2=sin(x)sin(6x)xlabel(x轴),ylabel(y轴)gtext(y1=co

10、s(2x),gtext(y2=sin(x)sin(6x)legend(y1=cos(2x),y2=sin(x)sin(6x)例 4-12 演示subplot指令对图形窗口的分割解 MATLAB命令为:clf;x=-2:0.2:2;y1=x+sin(x);y2=sin(x)./x;y3=x.2;subplot(2,2,1),plot(x,y1,m.),grid on,title(y=x+sinx) subplot(2,2,2),plot(x,y2,rp),grid on,title(y=sinx/x) subplot(position,0.2,0.05,0.6,0.45),plot(x,y3),

11、grid on,text(0.3,2.3,x2)4.1.7 绘制数值函数二维曲线的指令绘制数值函数二维曲线的指令fplotfplot的格式:fplot(fun,limits,tol,linespec) 说明:fun是函数名,可以是函数串及自定义函数;limits是坐标轴的取值范围;tol是相对误差,默认值为2e-3;linespec是线型,颜色和数据点等设置.例 4-13 分别利用指令plot和fplot绘制y=cos(1/x)在区间-1,1的图像,并作比较.解 (1)用plot画图,MATLAB命令为:x=-1:0.1:1;y=cos(1./x)plot(x,y) (2)用fplot画图,M

12、ATLAB命令为:fplot(cos(1./x),-1,1)4.1.8 绘制符号函数二维曲线的指令绘制符号函数二维曲线的指令ezplotezplot的格式:ezplot(F,xmin,xmax) 说明:F可以是字符串表达式,符号函数,内联函数,但是所有函数都只能是一元函数.如果区间xmin,xmax缺省,为-2,2 .例4-14 绘制 在区间0,4pi上的图形.teyt23cos322解 MATLAB命令为:syms tezplot(2/3*exp(-t/2)*cos(3/2*t),0,4*pi)4.2 MATLAB二维特殊图形二维特殊图形4.2.1 条形图 用bar和barh分别绘制二维垂直

13、条形图和二维水平条开形图. 1)bar(Y) 若Y为向量,则分别显示每个分量的高度,横坐标为1到length(Y); 若Y为矩阵,则把Y分解成行向量,再分别画出,横坐标为矩阵的行数. 2)bar(X,Y) 在指定的横坐标X上画出Y. 3) bar(X,Y,width) width为同一组内图形的间距,默认值为0.8. 4) bar(X,Y,style) style有两种模式,group模式,若Y为n*m矩阵,则bar显示 n组,每一组有m个垂直条形的条形图; stack模式,对Y的每一个行向量显示在 一个条形图中,条形图的高度为该行向量的分量的和.例 4-15 使用bar和barh绘图解 MA

14、TLAB命令为: y=rand(6,4)*8; 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.6),title(group)12345602468group1234560102030stack0102030123456stack12345602468stack其它特殊绘图略其它特殊绘图略(见教科书见教科书)4.3 三维曲线绘图三维曲线绘图plot3(

15、X,Y,Z,String)plot3(X1,Y1,Z1,String1, X2,Y2,Z2,String1,)空间曲线的参数方程为x=x(t),y=y(t),z=z(t),t为参数。例4-22 绘制三维曲线的图象:tztttyttx)200( ,cossin解 MATLAB命令为: t=0:pi/10:20*pi; x=t.*sin(t); y=t.*cos(t); z=t; plot3(x,y,z)-100-50050100-100-50050100020406080例4-23 在同一坐标下绘制如下两个函数的图象:tzttyttxcossin与tztttyttx)100(,cossin?解

16、MATLAB命令为: t=linspace(0,10*pi,1001); plot3(t.*sin(t),t.*cos(t),t, t.*sin(t),t.*cos(t),-t)-40-2002040-40-2002040-40-2002040例4-24 使用plot3绘制三维螺线,并用红色星号画出。解 MATLAB命令为: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t,r*); grid on; axis square-1-0.500.51-1-0.500.510102030404.4 三维曲面绘图三维曲面绘图4.4.1 meshgrid命令 二元函数z=f(

17、x,y)的图形是三维空间曲面,MATLAB把函数z=f(x,y)定义在矩形区域D=x0,xm y0,yn上,区域D分成mn个小矩形块.每个小矩形有4个顶点(xi,yi,f(xi,yi),连接4个顶点得到一个空间中的四边形片,所有这些四边形片构成函数的空间网格曲面.用函数meshgrid生成xy平面上的小矩形顶点坐标值的矩阵,也称为格点矩阵Meshgrid的调用格式:X,Y=meshgrid(x,y) 绘制二维图形时生成的小矩形的格点.X,Y=meshgrid(x) 等价于X,Y=meshgrid(x,x).X,Y,Z=meshgrid(x,y,z) 绘制三维图形时生成的空间曲面的格点.X,Y,

18、Z=meshgrid(x) 等价于X,Y,Z=meshgrid(x,x,x) 说明:x是区间x0,xm 上分划点组成的向量,而y是区间y0,ym 上分划点组成的向量.输出向量X和Y都是mn矩阵,而矩阵X的行向量都是x,矩阵Y的列向量都是y.例 4-25 已知向量x=1,2 3,y=4 ,7,9,0,生成它们对应的格点矩阵.解 MATLAB命令为: x=1 2 3; y=4 7 9 0; X,Y=meshgrid(x,y) 利用函数meshgrid生成格点矩阵,然后求出各格点对应的函数值,就可以利用mesh和surf命令分别生成空间的网格曲面和表面曲面.4.4.2 三维网格命令meshMesh调

19、用格式; mesh(X,Y,Z),用来绘制一个网格图,图像的颜色由Z确定。X,Y,Z可以是同维的矩阵,也可以是向量,如果X,Y为向量,必需满足:length(X)=n,length(Y)=m,其中m,n=size(Z). mesh的其它调用格式见P60。 例 4-26 画出函数z=x2+y2在-3x,y 3 上的图形,以及函数z=x2-2y2 在-10 x,y 10 上的图形。解 MATLAB命令为: %函数z=x2+y2 t1=-3:0.1:3; x1,y1=meshgrid(t1); z1=x1.2+y1.2; subplot(1,2,1), mesh(x1,y1,z1),title(x2

20、+y2) %马鞍面z=x2-2y2 t2=-10:0.1:10; x2,y2=meshgrid(t2); z2=x2.2-2*y2.2; subplot(1,2,2), mesh(x2,y2,z2),title(马鞍面) 例 4-27 分别用指令mesh,meshc,meshz画出 在-8x,y8上的图形。2222/ )sin(yxyxz解 MATLAB命令为: %函数 t=-8:0.1:8; x,y=meshgrid(t); r=sqrt(x.2+y.2)+eps; z=sin(r)./r; subplot(1,3,1),meshc(x,y,z) title(meshc),axis(-8 8

21、 -8 8 -0.5 0.8) subplot(1,3,2),meshz(x,y,z) title(meshz),axis(-8 8 -8 8 -0.5 0.8) subplot(1,3,3),mesh (x,y,z) title(mesh),axis(-8 8 -8 8 -0.5 0.8)2222/ )sin(yxyxz4.4.2 三维表面命令surf用法同mesh命令 例4-28 画出函数 ,-2x,y 2的图像,比较指令surf与mesh.)(22yxxez解 MATLAB命令为: %用mesh完成: t=-2:0.1:2; x,y=meshgrid(t); z=x.*exp(-x.2-

22、y.2); mesh(x,y,z) %用surf完成: t=-2:0.1:2; x,y=meshgrid(t); z=x.*exp(-x.2-y.2); surf(x,y,z) 例4-29 画出函数 z=x2+y2 ,-1x,y 1的图像,比较指令surf与mesh.解 MATLAB命令为: t=-1:0.1:1; x,y=meshgrid(t); z=x.2+y.2; subplot(1,2,1),mesh(x,y,z),title(网格图) subplot(1,2,2),surf(x,y,z),title(表面图) 例4-30 用平行截线法讨论由方程构成的马鞍面形状。解 MATLAB命令为

23、: %马鞍面 t=-10:0.1:10;x,y=meshgrid(t);z1=(x.2-2*y.2)+eps; subplot(1,3,1),mesh(x,y,z1),title(马鞍面) %平面 a=input(a=(-50a50);z2=a*ones(size(x); subplot(1,3,2),mesh(x,y,z2),title(平面) %交线plot3 r0=abs(z1-z2)=1;zz=r0.*z2;yy=r0.*y;xx=r0.*x; subplot(1,3,3),plot3(xx(r0=0),yy(r0=0),zz(r0=0),x), title(交线)4.4.4 绘制球面

24、和柱面1.绘制球面 sphere(n) 绘制一个单位球面,且球面上分格线条数为n. x,y,z=shpere(n),x,y,z是返回的(n+1)*(n+1)矩阵,且surf(x,y,z)为单位球面.例 4-31 画函数x2+y2+z2=1与x2+y2+z2=4的图形.解 MATLAB命令为: %半径为1的球面 v=-2 2 -2 2 -2 2; subplot(121),shpere(30),title(半径为1的球面),axis(v) %半径为2的球面 x,y,z=spere(30); subplot(122),surf(2*x,2*y,2*z),title(半径为2的球面),axis(v)

25、2. 绘制柱面l cylinder 生成单位柱面l x,y,z=cylinder 返回半径为1的柱面x,y,z的坐标,然后用surf,mesh绘图.l x,y,z=cylinder(r,n) 返回用r定义周长曲线的柱面x,y,z的坐标,且柱面上 格线条数为n.解 MATLAB命令为: subplot(121),cylinder, %默认的柱面 t=-pi:pi/10:pi; X,Y,Z=cylinder(1+sin(t); %改变柱面半径 subplot(122) surf(X,Y,Z) axis equare例 4-32 画柱面与改变柱面半径的图形.4.5 三维图形的控制命令三维图形的控制命

26、令 4.5.1 视角控制命令view从不同的位置和角度观察图形命令view:l view(az,el) 设置查看三维图形的三个角度,其中az为水平方位角,从Y轴负方向开始,以逆时针方向旋转为正;el为垂直方位角,以向Z轴方向的旋转为正,向Z轴负方向的旋转为负.l view(x,y,z) 在笛卡尔坐标系下的视角.l view(2) 设置默认的二维视角,此时az=0,el=90.l view(3) 设置默认的三维视角,此时az=-37.5,el=30.例 4-33 绘制函数 ,并从不同的角度观察图形.22yxxez解 MATLAB命令为:t=-2:0.1:2;x,y=meshgrid(t);z=x

27、.*exp(-x.2-y.2);subplot(221),surf(x,y,z)view(3)subplot(222),surf(x,y,z)view(30,30)subplot(223),surf(x,y,z)view(30,0)subplot(224),surf(x,y,z)view(-120,30) 4.5.2 旋转控制命令rotaterotate(h,direction,alpha) 该命令将图形绕方向旋转一个角度.其中参数h表示被旋转的对象参数direction设置有两种方法:球坐标法,设置为theta,phi,其单位为度;直角坐标法,即x,y,z.参数alpha是按右手法旋转的角度

28、例 4-34 利用rotate,从不同的角度查看函数22yxxez解 MATLAB命令为:t=-2:0.1:2;x,y=meshgrid(t);z=x.*exp(-x.2-y.2);h=surf(z)rotate(h,-2,-2,0,30,2,2,0)colormap cool说明说明:使用view旋转的是坐标轴,使用rotate旋转的是图形,轴不变.而命令rotate3d可使用户手动旋转图形.例 4-35 利用rotate3d调整函数peaks的视角.解 MATLAB命令为:surf(peaks(40);rotate3d; 4.5.3 背景颜色控制命令colordefucolordef wh

29、ite 将图形的背景色设置为白色.ucolordef black 将图形的背景色设置为黑色.ucolordef black 将图形的背景和图形窗口设置为默认色.ucolordef(fig,color_option) 将图形句柄fig图形的背景色设置为 由color_option指定的颜色.例 4-36 为peaks函数设置不同的背景颜色.解 MATLAB命令为: subplot(131),colordef none; surf(peaks(35); subplot(132),colordef black; surf(peaks(35); subplot(133),colordef white; surf(peaks(35); 4.5.4 图形颜色控制命令colormapcolormap(R,G,B 其中R,G,B代表一种颜色配色方案,见P71-表4-5.colormap(CM) 其中CM代表系统预定义的色图矩阵,见P71-表4-6例 4-37 绘制peaks的图形,设置图形的颜色.解 MATLAB命令为: surf(peaks(100); colormap(cool

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论