1、MATLAB程序设计教程MATLAB程序设计教程MATLAB程序设计教程 课程教案 2009年 5 月 5 日 授课周次 第 10 周 授课时间 授课方式 课时 理论课? 讨论课? 实验课? 习题课? 其他? 3 (请打?) 安排 授课题目(教学章、节或主题): 实验四 MATLATB高层绘图操作 对于教材第五章 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 教学目的、要求: 1 掌握绘制二维图形的常用函数 2 掌握绘制三维图形的常用函数 3 掌握绘制图片的辅助操作 教学重点及难点: 重点:绘制二维图形的常用函数和三维图形的常用函数 难点:绘制三维曲面的函数及隐函数绘图 教
2、学 基 本 内 容 和 过 程 第五章 MATLAB绘图 5.1 绘制二曲线的基本函数 5.1.1 绘制单根二维曲线 plot函数的基本调用格式为: plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 -0.5x例5-1 在0?x?2,区间内,绘制曲线y=2ecos(4x) 程序如下: x=linspace(0,2*pi,100); y=2.*exp(-0.5.*x).*cos(4.*pi.*x); plot(x,y) 第 页 1 运行结果: plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐
3、标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 5.1.2 绘制多根二维曲线 1(plot函数的输入参数是矩阵形式 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。 当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。 2(含多个输入参
4、数的plot函数 调用格式为: plot(x1,y1,x2,y2,xn,yn) (1)当输入参数都为向量时,x1和y1,x2和y2,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。 (2) 当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘第 页 2 制曲线,曲线条数等于矩阵的列数。 例5-2 在图形窗口中,以子图形yxyxyyyyx1sin()2cos()312,43,,,,式同时绘制多根曲线。 程序如下: x=linspace(-2*pi,2*pi,1000); y1=sin(x); y2=cos(
5、x); y3=y1.*y2; y4=x.3; subplot(2,3,1); plot(x,y1); title(y1=sin(x); subplot(2,2,2); plot(x,y2); title(y2=cos(x); subplot(2,2,3); plot(x,y3); title(y3=y1.*y2) subplot(2,2,4); plot(x,y4); title(y4=x.3) 运行结果: 第 页 3 5.3 分段函数的绘图 2,ln(sin()1)0xxx,,,,例5-3 已知 ,在 -2*pi,2*pi, 区间绘制函数曲线。 y,cos(4)x,x,0,2e,方法1 源程
6、序: x=linspace(-2*pi, 2*pi,1000); y=(log(sin(x)+sqrt(1+x.2).*(x0); plot(x,y); 运行结果: 方法2 源程序: x1=linspace(-2*pi,0,100); y1=(log(sin(x1)+sqrt(1+x1.2); x2=linspace(0,2*pi,100); y2=(cos(4.*x2)./exp(2); plot(x1,y1,r,x2,y2,b); 运行结果: 第 页 4 5.4 其他形式的线性直角坐标图 在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:
7、bar(x,y,选项) stairs(x,y,选项) stem(x,y,选项) fill(x1,y1,选项1,x2,y2,选项2,) 例5-4 分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 程序如下: x=0:pi/10:2*pi; y=2*sin(x); 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(
8、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); 运行结果: 第 页 5 5.5 极坐标图 polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。 例5-5 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。 程序如下: a=input(input a:); b=input(input b:); n=input(input n:); t=0:pi/
9、50:2*pi; r=a*sin(b+n*t).*cos(b+n*t); polar(t,r,-*); 运行结果: input a:2 input b: pi input n:4 第 页 6 5.6 绘制空间曲线 5.6.1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等
10、于矩阵列数。 xt,sin,ytt,cos020,,例5-6 绘制三维曲线。曲线所对应的参数方程为: ,zttt,sincos,程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z); title(Line in 3-D Space); xlabel(X);ylabel(Y);zlabel(Z); grid on; 运行结果: 5.7 绘制三维曲面的函数 第 页 7 5.7.1 产生三维数据 在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为: x=a:d1:b;
11、y=c:d2:d; X,Y=meshgrid(x,y); 语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数 5.7.2 绘制三维曲面的函数 surf函数、mesh函数和contour3函数的调用格式为: mesh(x,y,z) surf(x,y,z) contour3(x,y,z, 5); 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵。 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。 例5-7 绘制三维曲面图z=
12、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); 此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。 运行结果: 第 页 8 mesh() Surf() 5.8 隐函数绘图 5.8.1 MATLAB提供了一个ezplot函数绘制隐函数图形,下面介绍其用法。 1(对于
13、函数f = f(x),ezplot函数的调用格式为: ezplot(f):在默认区间-2x2绘制f = f(x)的图形。 ezplot(f, a,b):在区间axb绘制f = f(x)的图形。 2(对于隐函数f = f(x,y),ezplot函数的调用格式为: ezplot(f):在默认区间-2x2和-2y2绘制f(x,y) = 0的图形。 ezplot(f, xmin,xmax,ymin,ymax):在区间xminxxmax和yminyymax绘制f(x,y) = 0的图形。 ezplot(f, a,b):在区间axb和ay b绘制f(x,y) = 0的图形。 第 页 9 3(对于参数方程x
14、 = x(t)和y = y(t),ezplot函数的调用格式为: ezplot(x,y):在默认区间0t2绘制x=x(t)和y=y(t)的图形。 ezplot(x,y, tmin,tmax):在区间tmin t tmax绘制x=x(t)和y=y(t)的图形。 5.8.2 三维曲面图的绘制函数ezsurf的格式为: ezsurf(f,xmin,xmax,ymin,ymax) 功能:绘制符号表达式f代表的x、y二元函数的在xmin,xmax,ymin,ymax范围内的三维曲面。 ezsurf (x,y,z,smin,smax,tmin,tmax) 功能:绘制在smin,smax,tmin,tmax范围内x = x(s,t), y = y(s,t)和z = z(s,t)的三维曲面。 ,s,xet,cos,s,yetst,sin0805,例5-8 绘制曲面图形,并进行插值着色处理。 ,zt,源程序: s=linspace(0,8,100); t=linspace(0,5*pi,100); ezsurf(exp(-s).*cos(t),exp(-s).*sin(t),t,0,8,0,5*pi); shading interp;% ezsurf 参考p114,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1