数学建模-matlab讲座第3讲_第1页
数学建模-matlab讲座第3讲_第2页
数学建模-matlab讲座第3讲_第3页
数学建模-matlab讲座第3讲_第4页
数学建模-matlab讲座第3讲_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-5-3114.MATLAB绘图绘图主要内容:主要内容:l 4.1 绘图窗口l 4.2 二维绘图l 4.3 图形修饰与控制l 4.4 三维绘图2022-5-3124.1 绘图窗口绘图窗口 绘图窗口(Figure Window)是所有Matlab的图形输出的专用窗口,通过这个特殊窗口,可以自由查看和设置图形输出及表达的参数,并可获得高质量的图形打印文件。2022-5-3134.1.1 绘图窗口的创建与控制绘图窗口的创建与控制 当执行一个绘图命令时,若Matlab没有打开图形窗口时,该命令将自动创建一个图形窗口。 若已经存在了若干个图形窗口,则绘图命令将图像输出到当前图形窗口中,并将该窗口

2、原来的图像覆盖掉。 若要自己创建图形窗口,可使用命令:l figurefigure -创建名称为Figure n+1的图形窗口l figure(n)figure(n) -创建名称为Figure n的图形窗口或设置名称为Figure n的图形窗口为当前图形窗口。2022-5-314绘图窗口相关的几个常用命令绘图窗口相关的几个常用命令lclf clf 清除当前绘图窗口的非隐蒧对象lshg shg 显示/激活绘图窗口lRefresh Refresh 刷新当前绘图窗口lclose close 关闭当前绘图窗口2022-5-3154.2 二维绘图二维绘图4.2.1 4.2.1 基本二维绘图命令基本二维绘

3、图命令plotplot函数函数lplot(y)plot(y) 省略自变量的绘图格式,y可为向量或矩阵。 当y为向量时,以y元素值为纵坐标,以相应元素下标为横坐标绘图。 当y为实矩阵时,按列绘制曲线,每列的元素值为纵坐标,相应元素行下标为横坐标。因此,当y为mn矩阵时,就有n条曲线。 (例:test_plot.m)2022-5-316lplot(x, y)plot(x, y):x和y可为向量或矩阵。 如果x,y是同维向量,则以x元素为横坐标,以y元素为纵坐标绘图。 如果x是向量,y是有一维与x元素数量相等的矩阵,则以x为共同横坐标, y元素为纵坐标绘图,曲线数目为y的另一维数。 如果x,y是同维

4、矩阵,则按列以x,y对应列元素为横、纵坐标绘图,曲线数目等于矩阵列数。2022-5-317plot(x1, y1, x2, y2,plot(x1, y1, x2, y2,) ):多条曲线绘图格式. 在同一坐标系中绘制多个图形,以x1,x2元素为横坐标值,以对应的y1,y2元素为纵坐标绘图。例:程序如下:clearx=linspace(0,7);y1=sin(2*x);y2=sin(x.2);y3=(sin(x).2;plot(x,y1,x,y2,x,y3)2022-5-318plot(x,y,s) 开关字符串s用于设定曲线颜色、线型及标示符号,由一对单引号括起来。 (说明:字符串s是由分别表示

5、颜色、线型及标示符号的13个字符组成,与组合顺序无关,具体取值情况见下页表)plot(x1,y1,s1,x2,y2,s2,) 在同一坐标系中绘图多条曲线,并分别设定各曲线颜色、线型及标示符号。2022-5-319图形颜色、标记和线形参数表图形颜色、标记和线形参数表色彩字色彩字符符所定颜所定颜色色线型字线型字符符线型格式线型格式标记符标记符号号数据点形数据点形式式标记符标记符号号数据点形数据点形式式y黄黄- -实线(默实线(默认)认). .点点 右三角形右三角形2022-5-3110 在MATLAB中,如果需要绘制具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。 调用格式为: plo

6、tyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。具有两个纵坐标标度的图形2022-5-3111例. 用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2)2022-5-3112hold on/off 命令控制是保持原有图

7、形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。(grid)例.利用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。 程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1,k);shg;pausehold ony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2,b);shg;hold off图形保持图形保持2022-5-3113对函数自适应采样的绘图函数对函数自适应采样的绘图函数lfplot 用来自动画一个已定义的函数分布图

8、,而无须产用来自动画一个已定义的函数分布图,而无须产生绘图所要的一组数据做为变量。采用自适应步长控生绘图所要的一组数据做为变量。采用自适应步长控制来画出函数的示意图,在函数变化激烈的区间,采制来画出函数的示意图,在函数变化激烈的区间,采用小的步长,否则采用大的步长。总之,使计算量与用小的步长,否则采用大的步长。总之,使计算量与时间最小,图形尽可能精确。时间最小,图形尽可能精确。2022-5-3114fplot函数调用格式: fplot(fname,lims,tol,选项) 其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定

9、义与plot函数相同。例.用fplot函数绘制f(x)=cos(tan(x)的曲线。 程序如下: fplot(cos(tan(pi*x), 0,1,1e-4)对函数自适应采样的绘图函数对函数自适应采样的绘图函数2022-5-3115隐函数绘图隐函数绘图ezplotezplot 用来绘制形如:用来绘制形如:f=f(x)f=f(x)或或y=y(t),x=x(t)y=y(t),x=x(t)或或f(x,y) = 0f(x,y) = 0的的函数在指函数在指定区间上的图形。定区间上的图形。uezplot(f) 绘制f=f(x)在-2=x=2上图形或f(x,y)=0在-2 x 2且 -2 y 2的图形.ue

10、zplot(f,min,max) 绘制f=f(x)在min=x=max上图形uezplot(f,xmin,xmax,ymin,ymax) 绘制f(x,y)=0在xmin x xmax 且 ymin y ymax的图形.uezplot(x,y) 绘制y=y(t),x=x(t)的函数在-2=t=2的图形uezplot(x,y,tmin,tmax) 绘制y=y(t),x=x(t)的函数在min =t= max的图形2022-5-3116隐函数绘图隐函数绘图例 分别绘制 1) y=2x2 在x-2,2 上的图像 2) 5x2y4 =6 在x-6,6, y-4,4上的图像 3) y=2t,x=3t2 在

11、t-5,5上图像程序如下: ezplot(2*x2); ezplot(5*x2-y4-6,-6,6,-4,4);ezplot(2*t,3*t2,-5,5); 2022-5-3117subplot函数调用格式:subplot(m,n,p) 该函数将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号p按行优先编号(即从左往右,再由上而下的顺序从1开始编号),且选定第p个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。图形窗口的分割图形窗口的分割2022-5-3118采用图形窗口分割方法进行比较显示采用图形窗口分割方法进行比较显示 cleart=0:pi/10:2*pi;y1=si

12、n(t); y2=cos(t); y3=cos(t+pi/2); y4=cos(t+pi); subplot(2,2,1); plot(t,y1); %将图形窗口分割成两行两列,y1图形为第1行第1列subplot(2,2,2); plot(t,y2); %将图形窗口分割成两行两列,y2图形为第1行第2列subplot(2,2,3); plot(t,y3); %将图形窗口分割成两行两列,y3图形为第2行第1列subplot(2,2,4); plot(t,y4); %将图形窗口分割成两行两列,y4图形为第2行第2列2022-5-3119特殊的二维绘图命令特殊的二维绘图命令 前面学习的几个命令都有

13、一个共同局限,就是只能表现出函数值随自变量的线性变化。对于指数变化的情况就无法从图中直观的表现出来。 命令loglog、semilogx、semilogy则可以解决这个问题,它们的使用方法与plot命令相同,仅在坐标轴上不同。2022-5-3120特殊的二维函数命令特殊的二维函数命令1对数坐标绘制对数和半对数坐标曲线的函数。其调用格式为:semilogx(x1,y1,选项1,x2,y2,选项2,) 横坐标使用lnxsemilogy(x1,y1,选项1,x2,y2,选项2,) 纵坐标使用lnyloglog(x1,y1,选项1,x2,y2,选项2,) 横坐标使用lnx纵坐标使用lny2022-5-

14、3121例. 在对数坐标系中绘图.clearx=logspace(-1,2);%在10(-1)到102之间产生50个对数等分的行向量subplot(121); subplot(1,2,1);loglog(x,10*exp(x),-p)grid onsubplot(122);semilogx(x,cos(10.x)grid on对数坐标对数坐标2022-5-31222极坐标图polar函数用来绘制极坐标图, 其调用格式:polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标半径,选项的内容与plot函数相似极坐标图极坐标图2022-5-3123例. 绘制r=sin(t

15、)cos(t)的极坐标图,并标记数据点。 程序如下:t=0:pi/50:2*pi;r=sin(t).*cos(t);polar(t,r,-*);极坐标图极坐标图2022-5-3124l画出一花瓣状图形画出一花瓣状图形theta = -pi:0.01:pi; rho(1,:) = 2*sin(5*theta).2;rho(2,:) = cos(10*theta).3;rho(3,:) = sin(theta).2;rho(4,:) = 5*cos(3.5*theta).3;for i = 1:4% 极坐标图形输出函数 polar(theta,rho(i,:) pauseend极坐标图极坐标图20

16、22-5-3125 在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是: bar(x,y,选项) stairs(x,y,选项) stem(x,y,选项) fill(x1,y1,选项1,x2,y2,选项2,)其它请大家查阅联机帮助学习(doc specgraph), 如hist(统计直方图)、area(区域图)、pie(饼图)、sphere(球面图)、comet(慧星曲线)二维统计分析图二维统计分析图2022-5-3126例.分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。程序如下:x=0:pi/10:2*pi;y=2*sin(x

17、);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g);axis(0,7,-2,2);subplot(2,2,2);stairs(x,y,b);title(stairs(x,y,b);axis(0,7,-2,2);subplot(2,2,3);stem(x,y,k);title(stem(x,y,k);axis(0,7,-2,2);subplot(2,2,4);fill(x,y,y);title(fill(x,y,y);axis(0,7,-2,2);二维统计分析图二维统计分析图2022-5-3127例. 绘制图形:(1) 某企业全年各季度的产值(单位:万元)分

18、别为:2347,1827,2043,3025,试用饼图作统计分析。(2) 绘制复数的向量图:7+2.9i、2-3i和-1.5-6i。 程序如下:subplot(1,2,1);pie(2347,1827,2043,3025);title(饼图);legend(一季度,二季度,三季度,四季度);subplot(1,2,2);compass(7+2.9i,2-3i,-1.5-6i);title(向量图);二维统计分析图二维统计分析图2022-5-31284.3 4.3 图形修饰与控制图形修饰与控制title title 给图形加标题给图形加标题xlablexlable 给给x x轴加标注轴加标注yl

19、ableylable 给给y y轴加标注轴加标注text text 在图形指定的任意位置加标注在图形指定的任意位置加标注gtextgtext 利用鼠标将标注加到图形任意位置利用鼠标将标注加到图形任意位置grid on grid on 打开坐标网格线打开坐标网格线grid offgrid off关闭坐标网格线关闭坐标网格线legend legend 添加图例添加图例axis axis 控制坐标轴刻度控制坐标轴刻度zoomzoom 图形放大图形放大2022-5-3129图形标注函数: titletitle 给图形加标题 xlablexlable 给x轴加标注 ylableylable 给y轴加标注

20、 texttext 在图形指定位置加标注 gtextgtext 用鼠标将标注加到图形任意位置 函数中的说明文字,除使用标准的ASCII字符外,还可使用TeX格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。例如,text(0.3,0.5,sin(omegat+beta) 将得到标注效果sin(t+)。图形标注图形标注2022-5-3130例. 在0 x2区间内,绘制曲线y1=2e-0.5x和y2=cos(4x),并给图形添加图形标注。x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title(x

21、from 0 to 2pi); %加图形标题xlabel(Variable X); %加X轴说明ylabel(Variable Y); %加Y轴说明text(0.8,1.5, 曲线y1=2e-0.5x); %在指定位置添加图形说明text(2.5,1.1,曲线y2=cos(4pix); legend(y1, y2) %加图例图形标注图形标注2022-5-3131例:绘制正弦和余弦曲线,并加入网格和标注例:绘制正弦和余弦曲线,并加入网格和标注t=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3; 0.

22、7;s=sin(t);cos(t);text(x, y, s);指定位置加标注title(正弦和余弦曲线);标题legend(正弦,余弦) %添加图例注解xlabel(时间)x坐标名ylabel(正弦&余弦)y坐标名grid on%添加网格axis square%将图形设置为正方形0246810-1-0.8-0.6-0.4-0.200.20.40.60.81sin(t)cos(t)正 弦 和 余 弦 曲 线时 间正弦&余弦正 弦余 弦2022-5-3132axis函数的调用格式为: axis(xmin xmax ymin ymax zmin zmax)axis常用的格式还有:

23、axis equal: 纵、横坐标轴采用等长刻度。 axis square: 产生正方形坐标系(缺省为矩形)。 axis auto: 使用缺省设置。 axis off: 取消坐标轴。 axis on: 显示坐标轴。 给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。坐标控制坐标控制2022-5-3133MATLAB 7版本在图形窗口中提供了可视化的图形编辑工具,利用图形窗口菜单栏或工具栏中的有关命令可以完成对窗口中各种图形对象的编辑处理。图形的可视化编辑图形的可视化编辑2022-5-31344.4 4.4 三维图

24、形三维图形l4.4.1基本的三维绘图命令l三维曲线图plot3函数可以绘制三维曲线:其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) 其中:l每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。lx,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。lx,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。 2022-5-3135 例:例:函数plot3绘制的三维曲线图cleart=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)grid on0102

25、03040-1-0.500.51-1-0.500.51三维曲线三维曲线图图2022-5-3136例. 绘制三维曲线。程序如下:程序如下:t=0:pi/100:20t=0:pi/100:20* *pi;pi;x=sin(t);x=sin(t);y=cos(ty=cos(t););z=t.z=t.* *sin(t).sin(t).* *cos(tcos(t););plot3(x,y,z);plot3(x,y,z);title(Line in 3-D Space);title(Line in 3-D Space);xlabel(X);ylabel(Y);zlabel(Zxlabel(X);ylabe

26、l(Y);zlabel(Z););grid on;grid on;三维曲线三维曲线图图2022-5-31371产生三维数据 在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为:x=a:d1:b; y=c:d2:d;X,Y=meshgrid(x,y); 语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。4.4.2 4.4.2 三维曲面三维曲面2022-5-31382绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c)mesh(x,y,z,c)surf(x,y,z,c

27、)surf(x,y,z,c) 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。三维曲面三维曲面2022-5-3139例. 绘制三维曲面图z=sin(x+sin(y)-x/10。程序如下:x,y=meshgrid(0:0.25:4*pi);z=sin(x+sin(y)-x/10;mesh(x,y,z);axis(0 4*pi 0 4*pi -2.5 1);三维曲面三维曲面2022-5-3140 此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。 其用法与mesh类似,不同的是meshc还在x

28、y平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。三维曲面三维曲面2022-5-3141例. 在xy平面内选择区域-8,8-8,8,绘制4种三维曲面图。程序如下:x,y=meshgrid(-8:0.5:8);z=sin(sqrt(x.2+y.2)./sqrt(x.2+y.2+eps);subplot(2,2,1);mesh(x,y,z);title(mesh(x,y,z)subplot(2,2,2);meshc(x,y,z);title(meshc(x,y,z)subplot(2,2,3);meshz(x,y,z);title(meshz(x,y,z)subplot(

29、2,2,4);surf(x,y,z);title(surf(x,y,z)三维曲面三维曲面2022-5-31423标准三维曲面sphere函数的调用格式为:x,y,z=sphere(n)cylinder函数的调用格式为:x,y,z= cylinder(r,n) 其中:r为母线向量,n为旋转圆周上的分格线的条数 MATLAB还有一个peaks函数,称为多峰函数,常用于三维曲面的演示。三维曲面三维曲面2022-5-3143例. 绘制标准三维曲面图形程序如下:t=0:pi/20:2*pi;subplot(2,2,1); x,y,z= cylinder(2+sin(t),30);surf(x,y,z);subplot(2,2,2);x,y,z=sphere;surf(x,y,z);subplot(2,1,2);x,y,z=peaks(30); surf(x,y,z);三维曲面三维曲面2022-5-3144 在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fi

温馨提示

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

评论

0/150

提交评论