第5章 《Matlab软件基础及应用》.doc

上传人:飞****2 文档编号:52739260 上传时间:2022-10-23 格式:DOC 页数:21 大小:137.50KB
返回 下载 相关 举报
第5章 《Matlab软件基础及应用》.doc_第1页
第1页 / 共21页
第5章 《Matlab软件基础及应用》.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《第5章 《Matlab软件基础及应用》.doc》由会员分享,可在线阅读,更多相关《第5章 《Matlab软件基础及应用》.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章 数据和函数的可视化 51 可视化的一般步骤绘制二维、三维图形的一般步骤步 骤典 型 指 令1曲线数据准备l 先取一个参变量采样向量l 然后计算各坐标数据向量T=pi*(0:100)/100;X=f1(t);y=f2(t);z=f3(t);三维曲面数据l 产生自变量采样向量l 产生自变量“格点”矩阵l 计算自变量“格点”矩阵相应的函数矩阵x=x1:dx:x2;y=y1:dy:y2;X,Y=meshgrid(x,y);Z=f(X,Y); 2 选定图形窗及子图位置l 缺省时,打开Figure N0. 1,或当前窗、当前子图l 可用指令指定图形窗口和子图号figure(1)subplot(2,

2、2,3)3调用三维曲线绘图指令:线型、色彩、数据点plot(x,y,r:)plot3(x,y,z.b-)调用三维曲面绘图指令mesh(X,Y,Z)4设置轴的范围、坐标分格线axis(x1,x2,y1,y2)axis(x1,x2,y1,y2,z1,z2)grid on5图形注释:图名、坐标名、图例、文字说明title(调制波形)xlabel(t);ylabel(y)legend (sin(t),sin(t)sin(9t)text(2,0.5,y=sin(t)sin(9t))6着色、明暗、灯光、材质处理(仅对三维图形使用)Colormap,shading,liht,material7视点、三度(横

3、、纵、高)比(仅对三维图形使用)view,aspect8图形的精细修饰(图柄操作):l 利用对象属性值设置l 利用图形窗工具条进行getset52 二维曲线绘图的基本操作521 plot 基本调用格式(1) plot(X,s)l X是实向量时,以该向量的下标为横坐标、元素值为纵坐标画出一条连续曲线。l X是实矩阵时,按列绘制每列元素值相对应其下标的曲线,图中曲线数等于X阵列数。l S是用来指定线型、色彩、数据点形的选项字符串。S可为 LineWidth,MarkerEdgeColor,MarkerFaceColor,MarkerSize(2) plot(X,Y,s)l X,Y是同维向量时,绘制

4、以X,Y元素为横、纵坐标的曲线。l X,Y是同维矩阵时,以X,Y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(3) plot(X1,Y1,s1,X2,Y2,s2,)53 曲线的色彩、线型和数据点一. 色彩和线型线型符号:.含义实线虚线点划线双点划线色彩符号bgrcmykw含义蓝绿红青品红黄黑白二. 数据点形符号含义符号含义.实心黑点d菱形符+十字符h六角星符*八字符o空心圆圈朝上三角符p五角星符朝又三角符x叉字符v朝下三角符【例】用图形表示连续调制波形 及其包络线。t=(0:pi/100:pi);y1=sin(t)*1,-1;y2=sin(t).*sin(9*t);t3=pi*

5、(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo)axis(0,pi,-0.5,0.5)figure(2);x=-pi:pi/10:pi;y=tan(sin(x)-sin(tan(x);plot(x,y,r-s,LineWidth,3,MarkerEdgeColor,.b,MarkerFaceColor,k,MarkerSize,10)axis tighty3=sin(t3).*sin(9*t3);plot(t,y1,r:,LineWidth,3,MarkerEdgeColor,b,MarkerFaceColor,k,Mark

6、erSize,15,t,y2,b,t3,y3,bo)54 坐标、刻度和分格线控制一 坐标控制 axis常用的坐标控制指令axis坐标轴控制方式、取向和范围坐标轴的高宽比指令含义指令含义axis auto使用缺省值axis equal纵、横轴采用等长刻度axis manual 使当前坐标范围不变axis fill在manual 方式下起作用,使坐标充满这个绘图区axis off 取消轴背景axis image纵、横轴采用等长刻度,且坐标框紧帖数据范围axis on使用轴背景axis normal缺省矩形坐标系axis square产生正方形坐标系axis ij矩阵式坐标,原点在左上方axis t

7、ight把数据范围直接设为坐标范围axis xy普通直角坐标,原点在左下方axis vis3d保持高宽比不变,用于三维旋转时避免图形大小变化axis(V),V=x1,x2,y1,y2;V=x1,x2,y1,y2,z1,z2,坐标范围设定向量V中的元素必须服从:x1x2, y1y2, z10.05);ts=max(tt);plot(t,y,r-,LineWidth,3)axis(-inf,6*pi,0.6,inf)set(gca,Xtick,2*pi,4*pi,6*pi,Ytick,0.95,1,1.05,max(y)grid ontitle(it y = 1 - e -alphatcosome

8、gat)text(13.5,1.2,fontsize12alpha=0.3)text(13.5,1.1,fontsize12omega=0.7)hold on;plot(ts,0.95,bo,MarkerSize,10);hold offcell_string1=fontsize12uparrow;cell_string2=fontsize16 fontname隶书镇定时间;cell_string3=fontsize6 ;cell_string4=fontsize14rmt_s = num2str(ts);text(ts,0.85,cell_string)xlabel(fontsize14 b

9、ft rightarrow)ylabel(fontsize14 bfy rightarrow) 五 多次叠绘、双纵坐标和多子图一 多次叠绘【例】利用hold绘制多个曲线。t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);plot(t,y,r);hold on;t=2*pi*(0:20)/20;y1=sin(t).*exp(-0.4*t);plot(t,y1,b);hold off二 双纵坐标图plotyy(x1,y1,x2,y2)【例】画出函数和积分在区间上的曲线。clf;dx=0.1;x=0:dx:4;y=x.*sin(x);s=cumtrapz(y)*dx;pl

10、otyy(x,y,x,s),text(0.5,0,fontsize14ity=xsinx)sint=fontsize16int_fontsize80 x;text(2.5,3.5,fontsize14its=,sint,fontsize14itxsinxdx) 三 多子图subplot(m,n,k) 把图形窗口分割成m行n列子窗口,k 为指定第k个窗口为当前窗口。subplot(position,left bottom width height)【例】演示subplot指令对图形窗的分割clf;t=(pi*(0:1000)/1000);y1=sin(t);y2=sin(10*t);y12=si

11、n(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis(0,pi,-1,1)subplot(2,2,2),plot(t,y2);axis(0,pi,-1,1)subplot(position,0.2,0.05,0.6,0.45)plot(t,y12,b-,t,y1,-y1,r:);axis(0,pi,-1,1) ;break;clf;t=(pi*(0:1000)/1000);y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(3,1,1),plot(t,y1);axis(0,pi,-1,1)subplo

12、t(3,1,2),plot(t,y2);axis(0,pi,-1,1)subplot(position,0.40,0.05,0.3,0.3)plot(t,y12,b-,t,y1,-y1,r:);axis(0,pi,-1,1) break;clf;t=(pi*(0:1000)/1000);y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(3,1,1),plot(t,y1);axis(0,pi,-1,1)subplot(3,1,2),plot(t,y2);axis(0,pi,-1,1)subplot(position,0.40,0.05,0.

13、3,0.3)plot(t,y12,b-,t,y1,-y1,r:);axis(0,pi,-1,1)55 三维绘图的基本操作551 三维线图指令plot3绘图指令如下:plot3(X,Y,Z,s)plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,.)说明:l X,Y,Z是同维向量时,则绘制以X,Y,Z元素为x,y,z坐标的三维曲线。l X,Y,Z是同维矩阵时,则以X,Y,Z对应列元素为x,y,z坐标分别绘制曲线,曲线条数等于矩阵的列数。S,s1,s2的意义与二维情况相同,用来指定线型、色彩、数据点。【例】三维曲线绘图(要点:参量选取;线型、点型、图例)。t=(0:0.02:2)*pi;x

14、=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,b-,x,y,z,bd),view(-82,58),box on,legend(链,宝石) 改变视角 view(-82,58)注意两个图形,一个是以30度视角向下看z=0平面,一个是以37.5度视角向上看x=0平面。这是对所有三维图形的缺省视角。与z=0平面所成的方向角叫仰角,与x=0平面的夹角叫做方位角。这样,缺省的三维视角方向仰角为30度,方位角为-37.5度。而缺省的二维视角仰角为90度,方位角为0度。仰角和方位角的概念在下图中形象地画出。【例】X,Y=meshgrid(-pi:0.1:pi);Z=sin(X

15、)-cos(Y);plot3(X,Y,Z); t=0:pi/50:10*pi; plot3(sin(t),cos(t),t)title(Helix),xlabel(sint(t),ylabel(cos(t),zlabel(t)text(0,0,0, Origin),grid,v = axis552 三维网线图和曲面图 一 三维图形的数据准备画函数z=f(x,y)所代表的三维空间曲面,需要做以下数据准备:(1) 确定自变量x,y的取值范围和取值间隔。x=x1:dx:x2;y=y1:dy:y2(2) 构成xy平面上的自变量“格点”矩阵。X,Y=meshgrid(x,y);生成的矩阵X的行和Y的列相

16、同,矩阵X的每一行都是向量x,Y的每一列都是向量y。(3) 计算在自变量采样“格点”上的函数值,即Z=f(X,Y)。 二 三维网线图、曲面图基本指令格式mesh(z),mesh(x,y,z),mesh(x,y,z,c)x,y是自变量格点矩阵,z是格点上的函数矩阵C是指定各点用色的矩阵,省略是默认C=Z。meshc,meshz,surf,surfc,surfl例clf,x=-4:0.5:4;y=x;X,Y=meshgrid(x,y);Z=X.2+Y.2-X.*Y;mesh(X,Y,Z);hidden off;图形的透视hidden offhidden on【例】X,Y=meshgrid(-8:0

17、.5:8);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;Surf(X,Y,Z);figure(2);mesh(X,Y,Z),hidden off;【例】X,Y=meshgrid(-8:0.5:8);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;meshc(X,Y,Z);meshz(X,Y,Z);【例】用曲面图表现函数-xy。clf,x=-4:0.5:4;y=x;X,Y=meshgrid(x,y);Z=X.2+Y.2-X.*Y;surf(X,Y,Z);hold on,colormap(hot)stem3(X,Y,Z,bo)【例】X,Y=meshgrid(-8

18、:0.5:8);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;figure(1), surf(X,Y,Z);pausefigure(2), surfc(X,Y,Z);pausefigure(3), surfl(X,Y,Z);【例】X,Y=meshgrid(-8:0.5:8);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;figure(1), surf(X,Y,Z);pausefigure(2),surf(X,Y,Z);shading flat;pausefigure(3), Surf(X,Y,Z);shading interppausefigure(4),S

19、urf(X,Y,Z);shading interp;axis off图形的浓淡处理 shading optionsoptions的取值为:flatinterpfaceted透明控制alpha(v)v01之间取值,0表示完全不透明,1表示完全透明。surf(peaks)shading interpalpha(0.5)colormap(summer)灯光lightlight(color,option1,style,option2,position,option3)clf;colormap(jet)X,Y,Z=sphere(40);subplot(1,2,1);surf(X,Y,Z);shading

20、 interplight(position,0,-10,1.5,style,infinite)lighting phongmaterial shinysubplot(1,2,2);surf(X,Y,Z,-Z);shading flatlight;lighting flatlight(position,-1,0.5,1,style,local,color,w)56 其它图形一 等高线contour,contour3(1) contour(Z)(2) contour(X,Y,Z)(3) contour(Z,n) n为指定绘制的等高线条数。(4) contour(X,Y,Z,n)X,Y,Z=peak

21、s; C,H=contour3(X,Y,Z,15);%C,H=contourf(X,Y,Z,15);%clabel(C,H);二维等高线contourf(Z,15);三维等高线X,Y,Z=peaks; C,H=contour3(X,Y,Z,15);clabel(C,H);二瀑布图指令: waterfall例 waterfall(peaks); axis tightX,Y,Z=peaks;waterfall(X,Y,Z);axis tight三条形图指令:bar(X,Y); bar(Y); bar(X,Y,width) width 指定竖条的宽度,缺省值为0.8bar(X,Y,grouped,w

22、idth) 产生组合的条形图 bar(X,Y,stacked,width) 产生堆叠的条形图bar(X,Y,linespec,width) 指定条的颜色h=bar(X,Y) 返回图形对象的句柄向量例x=1:12;y=-10,-6,5,10,20,25,30,24,22,19,10,6;bar(x,y)例x=1:12;Y=-10,-6,5,10,20,25,30,24,22,19,10,6;-18,-14,-3,2,12,17,22,16,14,10,2,-4;Y=Y;subplot(2,1,1),bar(x,Y,grouped);subplot(2,1,2),bar(x,Y,stacked);

23、三维条形图指令: bar3(x,Y)x=1:12;Y=-10,-6,5,10,20,25,30,24,22,19,10,6;-18,-14,-3,2,12,17,22,16,14,10,2,-4;Y=Y;Y=Y Y Y;bar3(x,Y)pausefigure(2), bar3(x,Y,grouped)pausefigure(3) bar3(x,Y,stacked)四 饼形图指令:(1) pie(x), (2) pie(x,explode), explode 用于指定从饼图中抽出一部分的块, 和向量x的长度必须相等, explode中的非零向量对应的块将被抽出.(3) pie(,label)

24、label 为标注饼形图的字符串数组, 其长度须等于x的长度.(4) h=pie() 返回图形的句柄向量.例sale=100 150 400 250pie(sale,0 0 0 1)pie3(sale,1 1 1 1,Spring,Summer,Autumn,Winter)pie3(sale,1 1 1 1,10%,20%,50%,20%)例sale=0.11 0.17 0.44 0.28;pie(sale(2:4);五. 离散数据图指令: stem, stem3函数stem, stem3的功能和绘制二维和三维图形类似, 但stem, stem3中可以用选项”filled”来填充图中的离散点的

25、标记. 例x=0:0.1:2*pi;stem(x,sin(x);stem(x,sin(x),filled);stem3(exp(x),x,exp(x);stem3(exp(x),x,exp(x),filled);动画MATLAB提供了一种能力,它可以存储一系列各种类型的二维或三维图,然后象放电影一样把它们按次序重放出来。在某种意义上,动画提供的运动为图形增加另一个维数。通常图形的次序不必以任意的方式关联起来。一种明显的动画类型是取出三维图形然后缓慢地将它旋转,这样我们就可以从不同角度来观察它。另一种类型是当一个参数变化时,依次显示某些问题解的图形。MATLAB中的函数moviein,getfr

26、ame提供了捕捉和播放动画的所需工具。函数moviein可以产生一个帧矩阵来存放动画中的帧;函数getframe对当前的图象进行快照;而函数movie按顺序回放各帧。照这样,捕捉和回放动画的方法是:(1)创建帧矩阵;(2)对动画中的每一帧生成图形,并把它捕捉到到帧矩阵里;(3)从帧矩阵里回放动画。考虑下面的一段脚本M文件例子,例中绘制了函数peaks并且将它绕z轴旋转。% movie making example: rotate a 3-D surface plotX,Y,Z=peaks(30); % create datasurfl(X,Y,Z) % plot surface with li

27、ghtingaxis(-3 3 -3 3 -10 10) % fix axes so that scaling does not changeaxis off % erase axes because they jump around shading interp % make it pretty with interpolated shadingcolormap(hot) % choose a good colormap for lightingm=moviein(15); % choose 15 movie frames for frame matrix mfor I=1:15 % rot

28、ate and capture each frameview(-37.5+24*(i-1),30) % change viewpoint for this framem(:,i)=getframe; % add figure to frame matrixendmovie(m) % play the movie!注意到动画中的每一帧在帧矩阵中占据一个不同的列。帧矩阵的大小随着动画中的帧数和图形窗口的大小而增加,而与所绘图形的复杂性无关,这是因为函数getframe仅仅是捕捉位图。按缺省,函数movie只放一遍动画。通过加入其它输入参量,它可以向前放、向后倒放、放指定次数或按特定的桢速率播放。关

29、于这些特征的详细信息,参阅MATLAB参考指南或使用在线帮助。由于上述的动画制作策略很有用,它已体现在精通MATLAB工具箱的函数mmspin3d中。function M=mmspin3d(n)% MMSPIN3D Make Movie by 3D Azimuth Rotation of Current Figure.% MMSPIN3D(N) captures and plays N frames of the current figure% through one rotation about the Z-axis at the current elevation.% M=MMSPIN3D

30、(N) returns the movie in M for later playing with movie.% If not given,N=18 is used.% MMSPIN3D fixes the axis limits and issues axis off.% Copyright (c) 1996 by Prentice-Hall,Inc.if nargin1,n=18;endn=max(abs(round(n),2);axis(axis);axis offincaz=round(360/n);az,el=view;m=moviein(n);for i=1:nview(az+i

31、ncaz*(i-1),el)m(:,i)=getframe;endif nargout, M=m;else, movie(m);end使用mmspin3d,上述脚本简化如下:% movie-making example:rotate a 3-D surface plotX,Y,Z=peaks(30); % create datasurfl(X,Y,Z) % plot surface with lighting shading interp % make it pretty with interpolated shadingcolormap(hot) % choose a good colormap for lightingmmspin3d(15)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁