欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:52739260       资源大小:137.50KB        全文页数:21页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    第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,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视点、三度(横、纵、高)比(仅对三维图形使用)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是同维向量时,绘制以X,Y元素为横、纵坐标的曲线。l X,Y是同维矩阵时,以X,Y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(3) plot(X1,Y1,s1,X2,Y2,s2,)53 曲线的色彩、线型和数据点一. 色彩和线型线型符号:.含义实线虚线点划线双点划线色彩符号bgrcmykw含义蓝绿红青品红黄黑白二. 数据点形符号含义符号含义.实心黑点d菱形符+十字符h六角星符*八字符o空心圆圈朝上三角符p五角星符<朝左三角符s方块符>朝又三角符x叉字符v朝下三角符【例】用图形表示连续调制波形 及其包络线。t=(0:pi/100:pi)'y1=sin(t)*1,-1;y2=sin(t).*sin(9*t);t3=pi*(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,MarkerSize,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 tight把数据范围直接设为坐标范围axis xy普通直角坐标,原点在左下方axis vis3d保持高宽比不变,用于三维旋转时避免图形大小变化axis(V),V=x1,x2,y1,y2;V=x1,x2,y1,y2,z1,z2,坐标范围设定向量V中的元素必须服从:x1<x2, y1<y2, z1<z2【例】观察各种轴控制指令的影响。演示采用长轴为3.25,短轴为1.15的椭圆。注意:采用多子图表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。本书这样处理,是出于篇幅考虑。读者欲想准确体会控制指令的影响,请在全图状态下进行观察。t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);subplot(2,3,1),plot(x,y),axis normal,grid on,title('Normal and Grid on')pausesubplot(2,3,2),plot(x,y),axis equal,grid on,title('Equal')pausesubplot(2,3,3),plot(x,y),axis square,grid on,title('Square')pausesubplot(2,3,4),plot(x,y),axis image,box off,title('Image and Box off')pausesubplot(2,3,5),plot(x,y),axis image fill,box offtitle('Image and Fill')pausesubplot(2,3,6),plot(x,y),axis tight,box off,title('Tight') 二 分格线和坐标框grid on 画网格grid off 取消网格线box on 使当前坐标呈封闭形式box off 使当前坐标呈开启形式三 图形标识title(s) 书写图明xlabel(s) 横坐标轴名ylabel(s) 纵坐标轴名legend(s1,s2,) 绘制曲线所用线型、色彩或数据点形图例text(xt,yt,s) 在图面(xt,yt)坐标处书写字符注释四 细指令形式【例】指令、标识的理解和使用clf;t=0:pi/50:2*pi;y=sin(t);plot(t,y);axis(0,2*pi,-1.2,1.2)text(pi/2,1,'fontsize16leftarrowitsin(t)fontname隶书极大值') 【例】通过绘制二阶系统阶跃响应,综合演示图形标识。本例比较综合,涉及的指令较广。clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);tt=t(find(abs(y-1)>0.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 -alphatcosomegat')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 bft 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;plotyy(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=sin(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)subplot(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.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=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)-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的列相同,矩阵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.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: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),Surf(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 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=peaks; 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,width) 产生组合的条形图 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');三维条形图指令: 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) 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”来填充图中的离散点的标记. 例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,getframe提供了捕捉和播放动画的所需工具。函数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 lightingaxis(-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 % rotate 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只放一遍动画。通过加入其它输入参量,它可以向前放、向后倒放、放指定次数或按特定的桢速率播放。关于这些特征的详细信息,参阅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(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 nargin<1,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+incaz*(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)

    注意事项

    本文(第5章 《Matlab软件基础及应用》.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开