第3节 matlab的基本语法之2绘图._第1页
第3节 matlab的基本语法之2绘图._第2页
第3节 matlab的基本语法之2绘图._第3页
第3节 matlab的基本语法之2绘图._第4页
第3节 matlab的基本语法之2绘图._第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、 MATLAB绘图绘图 3.1 二维图形二维图形 3.2 三维图形三维图形 3.3 实验四实验四 绘图函数的应用绘图函数的应用 1 3.1 二维图形二维图形 3.1.1 绘制二维曲线的基本函数绘制二维曲线的基本函数 1. plot函数的基本用法函数的基本用法 plot函数的基本调用格式为:函数的基本调用格式为: plot(x,y) 其中其中x和和y为长度相同的向量,分别用于存储为长度相同的向量,分别用于存储x坐标和坐标和 y坐标数据。坐标数据。 2 例3.1 绘制出显函数方程在区间内的曲线。 在命令窗口输入如下语句 x = -pi:pi/10:pi;%以pi/10为步长 y = tan(sin

2、(x) - sin(tan(x);%求出各点上的函数 值 plot(x,y,-rs,LineWidth,2,. MarkerEdgeColor,k,. MarkerFaceColor,g,. MarkerSize,10) 得到的图形如图3.1所示,并标上了线型属性。 3 -4-3-2-101234 -3 -2 -1 0 1 2 3 图3.1 以pi/10为步长的曲线tan(sin(x) - sin(tan(x) 4 由于plot()函数只将给定点用直线连接起 来,因此步长选得过大,曲线将看似一折 线,因此将上述绘图语句步长改为0.05,并 在及两个子区间内加密自变量选择点,即 将上述语句修改为

3、 x=-pi:0.05:-1.8,-1.801:0.001:-1.2,- 1.2:0.05:1.2,1.2:0.001:1.8,1.81:0.05:pi; %以步长方式构造自变量 y = tan(sin(x) - sin(tan(x); plot(x,y) 得到曲线如图3.2所示。 5 -4-3-2-101234 -3 -2 -1 0 1 2 3 图3.2 细化步长后的曲线tan(sin(x) - sin(tan(x) 6 例3.2 用不同的线型和颜色在同一坐标内绘制曲线 y=2e-0.5xsin(2x)及其包络线。 MATLAB程序如下: x=0:pi/100:2*pi; y1=2*exp(

4、-0.5*x); x=0:pi/100:2*pi; y1=2*exp(-0.5*x); y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,k:,x,-y1,k:,x,y2,b-) %y1和-y1为包络线 7 程序执行结果如图3.3所示,图中首先用黑 色虚线绘出两根包络线,再用蓝色双划线 绘出曲线y。 01234567 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 图3.3 用不同线型和颜色绘制的曲线 8 说明:说明: (1)当)当x,y是同维矩阵时,则以是同维矩阵时,则以x,y对应列对应列 元素为横、纵坐标分别绘制曲线,曲线元素为横、纵坐标分别绘制

5、曲线,曲线 条数等于矩阵的列数。条数等于矩阵的列数。 (2)当)当x是向量,是向量,y是有一维与是有一维与x同维的矩同维的矩 阵时,则绘制出多根不同色彩的曲线。阵时,则绘制出多根不同色彩的曲线。 曲线条数等于曲线条数等于y矩阵的另一维数,矩阵的另一维数,x被作被作 为这些曲线共同的横坐标。为这些曲线共同的横坐标。 (3)plot函数最简单的调用格式是只包含函数最简单的调用格式是只包含 一个输入参数:一个输入参数:plot(x)。 9 2含多个输入参数的含多个输入参数的plot函数函数 含多个输入参数的含多个输入参数的plot函数调用格式为:函数调用格式为: plot(x1,y1,x2,y2,x

6、n,yn) 3含选项的含选项的plot函数函数 含选项的含选项的plot函数调用格式为:函数调用格式为: plot(x1,y1,选项选项1,x2,y2, 选项选项2,xn,yn,选项选项n) 10 3.1.2 设置轴的形式与刻度设置设置轴的形式与刻度设置 在绘制图形时,用户可以使用函数在绘制图形时,用户可以使用函数axis和和set对坐对坐 标轴的刻度范围进行重新设定,其调用格式如标轴的刻度范围进行重新设定,其调用格式如 下:下: (1)函数)函数axis axis(xmin xmax ymin ymax zmin zmax) axis函数功能丰富,常用的用法还有:函数功能丰富,常用的用法还有

7、: axis equal 纵、横坐标轴采用等长刻度纵、横坐标轴采用等长刻度 axis square 产生正方形坐标系产生正方形坐标系(缺省为矩形缺省为矩形) axis auto 使用缺省设置使用缺省设置 axis off 取消坐标轴取消坐标轴 axis on 显示坐标轴显示坐标轴 11 例3.3 绘制单位圆。 MATLAB程序如下: clear ;close all; clc t=0:0.01:2*pi; %定义时间范围 x=sin(t); y=cos(t); plot(x,y) axis(-1.5 1.5 -1.5 1.5) %限定x轴和y轴的显示范围 pause grid on axis(

8、equal) 12 程序运行结果如图3.4所示。 -1.5-1-0.500.511.5 -1.5 -1 -0.5 0 0.5 1 1.5 图3.4 单位圆 13 (2)函数set set(gca,xtick,标示向量),set(gca,ytick,标 示向量),按照标示向量设置x,y轴的刻度标 示; set(gca,xticklabel,字符串|字符串), set(gca, yticklabel,字符串|字符串 ), 按 照字符串设置x,y轴的刻度标志 例3.4 给正弦曲线设置刻度标示。 MATLAB程序如下: t=0:0.05:7; plot(t,sin(t) set(gca,xtick,0

9、 1.4 3.14 5 6.28) set(gca,xticklabel,0|1.4|half|5|one) 14 程序运行结果如图3.5所示。 01.4half5one -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 图3.5 设置刻度标示的正弦曲线 15 3.1.3图形的标注、网格及图例说明 绘制图形时,可以对图形加上一些说明,添加网格 和图例等,基本函数及其调用格式如下: (1)添加图形标题命令)添加图形标题命令title title(string),在当前坐标系的顶部加一个文本 串string,作为图形的标题。 title(text,Propert

10、y1, PropertyValue1, Property2, PropertyValue2,),设置标题名属性。 (2)添加坐标轴标志函数)添加坐标轴标志函数xlabel、ylabel、zlabel xlabel(string),ylabel( string) ,zlabel ( string),给当前X轴或Y轴或Z轴标注文本文注。 16 xlabel (text,Property1, PropertyValue1, Property2, PropertyValue2,) 或ylabel (text,Property1, PropertyValue1, Property2, PropertyV

11、alue2,) 或zlabel (text,Property1, PropertyValue1, Property2, PropertyValue2,) 对X轴、Y轴、Z轴分别进行属性设置。 17 (3)文本注释函数)文本注释函数text,gtext text(x,y,string) ,在二维图形(x,y)位置 处标注文本注释string text(x,y,z,string) ,在三维图形(x,y,z)位 置处标注文本注释string gtext(string)用鼠标拖动来确定标注 文字string的位置。 输入特定的文字用表示,见表3.2 18 例3.5 绘制分段函数曲线并添加图形标注。 8

12、, 1 86 , 2/5 64 , 2 40 , )( x xx x xx xf MATLAB程序如下: clc close all clear x=0:0.05:10; y=zeros(1,length(x); for n=1:length(x) if x(n)=8 y(n)=1; elseif x(n)=6 y(n)=5-x(n)/2 19 elseif x(n)=4 y(n)=2 else y(n)=sqrt(x(n) end end plot(x,y) axis(0 10 0 2.5) title(分段函数曲线); xlabel(x) ylabel(y) text(2,1.3,y=x1

13、/2); text(4.5,1.9,y=2); text(7.3,1.5,y=5-x/2); text(8.5,0.9,y=1); 20 程序执行结果如图3.6所示。 012345678910 0 0.5 1 1.5 2 2.5 分 段 函 数 曲 线 x y y=x1/2 y=2 y=5-x/2 y=1 图3.6 绘制分段函数曲线并添加图形标注 21 (4)创建图形窗命令)创建图形窗命令figure figure,打开不同的图形窗口,以便绘制不 同的图形 figure(PropertyName,PropertyValue,.), 创建具有特定属性值的图形窗口 figure(h),创建或显示句

14、柄h定义的图形窗 口,如果h不是整数,则返回错误。 h = figure(.) 22 (5)设置网格线命令)设置网格线命令grid grid on (off),对当前做标图加上网格线或撤 销网格线。若直接调用grid命令即可设置或 撤销网格线 (6)保持图形窗口内容命令)保持图形窗口内容命令hold hold on ( off ) 保持当前图形窗口内容命 令(解除保持)。若直接调用hold命令即可 保持或解除保持当前图形窗口内容。 23 例3.6分别绘制正余弦曲线并绘制标题,添 加或去除栅格。 MATLAB程序如下: close all clc clear%定义时间范围 t=0:pi/20:9

15、*pi; figure(1) %建立图形窗口1 24 plot(t,sin(t),r:*) grid on %在所画出的图形坐标中添加栅格,注意用在 plot之后 text(pi,0, leftarrow sin(pi),FontSize,18) title(添加栅格的正弦曲线) xlabel (x) ylabel (sint) figure(2) plot(t,cos(t) grid on pause grid off %删除栅格 25 text(pi,0, leftarrow cos(pi),FontSize,18) title(去除栅格的余弦曲线) xlabel (x) ylabel (

16、cost) 程序执行结果如图3.7,3.8所示。 26 051015202530 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 sin() 添 加 栅 格 的 正 弦 曲 线 x sint 图3.7 正弦曲线 27 051015202530 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 cos() 去 除 栅 格 的 余 弦 曲 线 x cost 图3.8 余弦曲线 28 (7)图形标注函数)图形标注函数legend legend(string1,string2,.),在当前图中添加图例; legend(.,pos

17、) 由pos 确定图例标注的位置,可以返 回给句柄:h= legend(.,pos) 参数字符串的含义: pos = -1放置图例在轴边界的右边; pos = 0 放置图例在轴边界里; pos = 1 放置图例在轴边界里右上角 (为默认设置); pos = 2放置图例在轴边界里左上角; pos = 3放置图例在轴边界里左下角; pos = 4放置图例在轴边界里右下角; Legend off ,撤销当前坐标图上的图例。 29 例3.7 给正弦余弦曲线图形添加图例 MATLAB程序如下: x = -pi:pi/20:pi; plot(x,cos(x),-ro,x,sin(x),-.b) h = l

18、egend(cos,sin,2); 程序执行结果如图3.9所示。 30 -4-3-2-101234 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 cos sin 图3.9 添加图例的正余弦曲线 31 3.1.4绘制二维图形的其他函数 1. 函数绘图命令fplot和分割图形显示窗口 命令subplot(m,n,k) fplot(function,limits):绘制函数曲线在一个 指定范围.其中,limits是一个指定x-轴范围的 向量xmin xmax,或者是x轴和y轴的范围的向 量xmin xmax ymin ymax。 subplot(m,n,p)

19、按平铺位置建立子图坐标系, 将一个图形窗口分成m*n个子图窗口,从左至 右,从上往下第p个子图形窗口。 32 例3.8 将一个图形窗口分割成4个子图窗口, 并且分别绘制不同函数曲线。 MATLAB程序如下: subplot(2,2,1),fplot(humps,0 1) subplot(2,2,2) 33 fplot(abs(exp(-j*x*(0:9)*ones(10,1),0 2*pi) subplot(2,2,3) fplot(tan(x),sin(x),cos(x),2*pi*-1 1 -1 1) subplot(2,2,4) fplot(sin(1./x),0.01 0.1,1e-3

20、) 程序执行结果如图3.10所示。 34 00.51 0 20 40 60 80 100 0246 0 2 4 6 8 10 -505 -5 0 5 0.020.040.060.080.1 -1 -0.5 0 0.5 1 图3.10 subplot函数和fplot函数的运用 35 2、双纵坐标绘图命令plotyy plotyy(X1,Y1,X2,Y2),设有两个纵坐标Y1, Y2,以便绘制两个y尺度不同的变量,但x 仍用同一个比例尺。 36 例3.9 在同一图形窗口按不同纵坐标绘制曲线。 MATLAB程序如下: x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin

21、(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); plotyy(x,y1,x,y2); 程序执行结果如图3.11所示。从图中可以看出, 左纵坐标的幅度范围为-200,200,对应y1,而右 纵坐标的幅度范围为-0.8 0.8,对应y2。 37 02468101214161820 -200 -150 -100 -50 0 50 100 150 200 02468101214161820 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 图3.11 曲线200*exp(-0.05*x).*sin(x)和200*exp(-0.05*x).*sin(

22、x); 38 3.其他形式的线性直角坐标图 在线性直角坐标系中,其他形式的图形有 条形图、阶梯图、杆图和填充图等,所采 用的函数分别是: bar(x,y,选项) stairs(x,y,选项) stem(x,y,选项) fill(x1,y1,选项1,x2,y2,选项2,) 39 前3个函数的用法与plot函数相似,只是没 有多输入变量形式。fill函数按向量元素下标 渐增次序依次用直线段连接x、y对应元素 定义的数据点。假如这样连接所得折线不 封闭,那么MATLAB将自动把该折线的首尾 连接起来,构成封闭多边形。然后将多边 形内部涂满指定的颜色。 40 例3.10 分别以条形图、填充图、阶梯图和

23、杆图形 式绘制曲线y=2e-0.5x。 MATLAB程序如下: x=0:0.35:7; y=2*exp(-0.5*x); subplot(2,2,1);bar(x,y,g); title(bar(x,y,g);axis(0,7,0,2); subplot(2,2,2);fill(x,y,r); title(fill(x,y,r);axis(0,7,0,2); subplot(2,2,3);stairs(x,y,b); title(stairs(x,y,b);axis(0,7,0,2); subplot(2,2,4);stem(x,y,k); title(stem(x,y,k);axis(0,7

24、,0,2); 41 程序运行结果如图3.12所示。 0246 0 0.5 1 1.5 2 bar(x,y,g) 0246 0 0.5 1 1.5 2 fill(x,y,r) 0246 0 0.5 1 1.5 2 stairs(x,y,b) 0246 0 0.5 1 1.5 2 stem(x,y,k) 图3.12 几种不同形式的二维图形 42 4. 极坐标图 polar函数用来绘制极坐标图,其调用格式 为: polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标矢径, 选项的内容与plot函数相似。 43 例3.11 绘制=sin(2)cos(2)的极坐标图。 MAT

25、LAB程序如下: theta=0:0.01:2*pi; rho=sin(2*theta).*cos(2*theta); polar(theta,rho,k); 程序运行结果如图3.13所示。 44 0.1 0.2 0.3 0.4 0.5 30 210 60 240 90 270 120 300 150 330 1800 图3.13 极坐标图 45 5对数坐标图形 MATLAB提供了绘制对数和半对数坐标曲线 的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,) semilogy(x1,y1,选项1,x2,y2,选项2,) loglog(x1,y1,选项1,x2,y2

26、,选项2,) 46 其中,选项的定义与plot函数完全一致,所不同 的是坐标轴的选取。semilogx函数使用半对数坐 标,x轴为常用对数刻度,而y轴仍保持线性刻度。 semilogy函数也使用半对数坐标,y轴为常用对 数刻度,而x轴仍保持线性刻度。loglog函数使用 全对数坐标,x、y均采用常用对数刻度。此外还 有一个函数logspace,可以按对数等间距地来产 生一个向量,其调用格式为: logspace(a,b,n) 其中,a和b是生成向量的第一个和最后一个元 素,n是元素总数。当n省略时,自动产生50个元 素。 47 例3.12绘制的对数坐标图并与直角线性坐标图 进行比较。 MATL

27、AB程序如下: x=0:0.1:10; y=10*x.*x; subplot(2,2,1);plot(x,y);title(plot(x,y); grid on; subplot(2,2,2);semilogx(x,y); title(semilogx(x,y); grid on; 48 subplot(2,2,3);semilogy(x,y); title(semilogy(x,y); grid on; subplot(2,2,4);loglog(x,y);title(loglog(x,y); grid on; 程序运行结果如图3.14所示。 49 0510 0 500 1000 plot(

28、x,y) 10 -1 10 0 10 1 0 500 1000 semilogx(x,y) 0510 10 -2 10 0 10 2 10 4 semilogy(x,y) 10 -1 10 0 10 1 10 -2 10 0 10 2 10 4 loglog(x,y) 图3.14 对数坐标图 50 6 其他形式的图形 MATLAB提供的绘图函数还有很多,例如, 用来表示各元素占总和的百分比的饼图、 复数的相量图等等。 例3.13绘制图形: (1)某次考试优秀、良好、中等、及格、不 及格的人数分别为:7,17,23,19,5,试用饼 图作成绩统计分析。 (2)绘制复数的相量图:3+2i、4.5-

29、i和- 1.5+5i。 51 MATLAB程序如下: subplot(1,2,1); pie(7,17,23,19,5); title(饼图);legend(优秀,良好,中等,及格 ,不及格); subplot(1,2,2); compass(3+2i,4.5-i,-1.5+5i);title(相量图); 程序执行结果如图3.15所示。 52 10% 24% 32% 27% 7% 饼 图 优 秀 良 好 中 等 及 格 不 及 格 5 10 30 210 60 240 90 270 120 300 150 330 1800 相 量 图 图3.15 其他形式二维图形 53 3.2三维图形 3.2

30、.1 绘制三维曲线的基本函数 最基本的三维图形函数为plot3,可用来绘制 三维曲线,其调用格式为: plot3(x,y,z) x,y,z是长度相同的向量; plot3(X,Y,Z) X,Y,Z是维数相同的矩阵, 以X、Y、Z对应列元素绘制三维曲线,曲线 条数等于矩阵列数; plot3(x1,y1,z1,s1, x2,y2,z2,s2, ),选项 的定义和plot函数相同。 54 例3.14 画一个三维的螺旋线。 MATLAB程序如下: t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid on axis square 程序运行结果如图3.16所示。 5

31、5 -1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 0 10 20 30 40 图3.16 三维的螺旋线 56 3.2.2三维曲面 1. 平面网格坐标矩阵的生成函数meshgrid 绘制z=f(x,y)所代表的三维曲面图,先要在 xy平面选定一矩形区域,假定矩形区域 D=a,b*c,d,然后将a,b在x方向分成m份, 将c,d在y方向分成n份,由各划分点分别作 平行于两坐标轴的直线,将区域D分成m*n 个小矩形,生成代表每一个小矩形顶点坐 标的平面网格坐标矩阵。生成网格坐标矩 阵的函数为meshgrid,其调用格式如下: 57 X,Y = meshgrid(x,y) 转换向量x

32、,y为一个 特定的矩阵X,Y,矩阵X的每一行都是向量x, 行数等于向量y的元素的个数,矩阵Y的每 一列都是向量y,列数等于向量x的元素的 个数。因此x=a:dx:b; y=c:dy:d;X,Y=meshgrid(x,y);等同于 x=a:dx:b; y=(c:dy:d);X=ones(size(y)*x;Y=y*ones(siz e(x); 58 例3.15 已知6x30,15y36,求不定方 程2x+5y=126的整数解。 MATLAB程序如下: x=7:29; y=16:35; x,y=meshgrid(x,y); %在5,2914,35区 域生成网格坐标 z=2*x+5*y; k=fin

33、d(z=126); %找出解的位置 59 x1=x(k),y1=y(k) %输出对应位置的x,y即方程的解 程序执行结果如下: x1 = 8 13 18 23 y1 = 22 20 18 16 60 2. 绘制三维曲面的函数surf函数和mesh函数 MATLAB提供了mesh函数和surf函数来绘 制三维曲面图。Mesh函数用于绘制三维网 格图,surf函数用于绘制三维曲面图,各线 条之间的曲面用颜色填充,其调用格式如 下: mesh(X,Y,Z),根据矩阵X、Y、Z绘制彩色 的三维网线图。X、Y、Z中对应的元素为三 维空间上的点,点与点之间用线连接。其 中网线的颜色随着网点高度的改变而改变。 61 在绘制二元函数z=f(x,y)的三维网格图时,首 先应通过X,Y=meshgrid(x,y)语句,在X-Y平 面上建立网格坐标,然后利用X和Y计算每一 个网格点上的Z坐标的大小,该坐标就定义了 曲面上的点。最后由mesh(Z)命令完成三维网 线图的绘制。 mesh(x

温馨提示

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

最新文档

评论

0/150

提交评论