ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:403.50KB ,
资源ID:24904140      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24904140.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Matlab入门到精通ch10.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Matlab入门到精通ch10.docx

1、Matlab入门到精通ch1010 句柄图形 与第7章的高层指令相比,本章的内容更深入MATLAB可视化功能的内核。编写本章的目的有两个:一,使读者更深入地理解高层绘图指令,从而可绘制出更精细更生动更个性的图形;二,使读者能利用低层图形指令和图形对象属性开发专用绘图函数。 本章在内容安排上有如下考虑: 保证概念、结构和方法的完整性:本章的前6节内容按由表及里、由浅入深的原则系统阐述句柄图形体系、图形对象、属性和操作方法。 突出要点、新点和难点:句柄图形体系有11个基本图形对象,每个对象的属性少则20几个,多则近百个。对此,MATLAB自带资料有详尽的文字说明。因此,本章只对最常用的、不可或缺的

2、、MATLAB老版本中所没有的、以及较难掌握的内容进行说明。 强调“可操作性”体现“范例引导概念”的本书宗旨:针对MATLAB自带资料缺少完整、可操作应用实例的 弱点,本章设计了17个算例,其中9个精心设计的完整应用范例就占本章一半以上篇幅。读者通过阅读或操作这些范例,可掌握各指令、属性之间的有机配合,从而更具体更真切地理解句柄图形。 在本章内容正式展开之前,先把MATLAB随带资料中涉及各对象属性的文件及查阅方法罗列如下。读者应重视这些最原始、最权威、最细节、任何其它书籍不能代替的资料。 使用Adobe Acrobat Reader阅读(或打印)以下PDF文件helppdf_docmatla

3、bgraphg.pdf ;helppdf_docmatlabrefrefbook2.pdf ; 使用Netscape Navigator或Microsoft Internet Explorer打开以下引导文件helptechdocinfotoolhgpropdoc_frame.htm 使用指令help或help window图形用户界面查看有关对象的资料。如help figure 可直接得到有关图对象的属性描述。 利用get , set 指令在MATLAB指令窗中,直接查询对象属性。10.1 句柄图形体系10.1.1 图形对象、对象句柄和句柄图形树结构10.1.2 对象属性10.2 图形对象的

4、操作10.2.1 图形对象创建指令一览10.2.2 对象句柄的获取方法10.2.2.1 基本方法10.2.2.2 句柄获取示例【*例10.2.2.2-1】画网线图,并得相应句柄;追溯法找所在图形窗句柄;gcf 和gca演示。clf reset;H_mesh=mesh(peaks(20) H_grand_parent=get(get(H_mesh,Parent),Parent)disp( 图柄 轴柄),disp(gcf gca) %显示当前图形窗和轴的句柄 H_mesh = 73.0135H_grand_parent = 1 图柄 轴柄 1.0000 72.0051图 10.2.2.2_1【*例

5、10.2.2.2-2】低层指令绘图,获得句柄;获取同轴上字对象的句柄和相应对象类型。clf reset,t=(0:100)/100*2*pi;H_line=line(Xdata,t,Ydata,sin(t)text(pi,0.8,fontsize14sin(t)H_c=get(get(H_line,parent),children) %轴之所有“子”的句柄T=get(H_c,Type) %轴之所有“子”对象名称 H_line = 72.0052H_c = 74.0116 72.0052T = text line 图 10.2.2.2_2【*例10.2.2.2-3】findobj指令的使用。cl

6、f reset,t=(0:pi/100:2*pi);tt=t*1 1;yy=sin(tt)*diag(0.5 1);plot(tt,yy),Hb=findobj(gca,Color,b) %在当前轴上寻找蓝线的句柄Hb = 72.0050 图 10.2.2.2_310.3 对象属性的获取和设置10.3.1 创建对象时设置属性10.3.2 get 和 set 10.3.3 对象属性的缺省设置和查询10.3.4 属性查询和设置示例【*例 10.3.4-1】创建二维图形时,分别用元胞数组和构架数组设置对象属性。clf reset,x=0:pi/12:2*pi;PN1=Color, LineWidth

7、,Marker; %属性名元胞数组PV1=1 0 0, 5 , d; %属性值元胞数组plot(sin(x),cos(x),PN1,PV1) %高层指令,元胞数组属性对设置axis squarePS.Color=0.7 0.7 0;PS.LineWidth=2; %构架数组属性line(sin(7*x),cos(7*x),PS); % 低层指令,构架数组属性设置。 图 10.3.4-1 创建对象时设置属性的二维图形【例 10.3.4-2】本例演示:影响line或plot画线时线型和色彩的“父”对象设置。(1)指令中直接指定线型或/和颜色:用“红虚点线”绘所有曲线。clf reset;t=(0:

8、pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;line(t,Y,Color,1 0 0,LineStyle,-.) % 图 10.3.4_2_1(2)轴对象属性 LineStyle 和 ColorOrder 的影响:以“黑实黑虚灰实灰虚”的循环次序绘线。clf resetset(gca,ColorOrder,0 0 0;0.7 0.7 0.7,LineStyle,-|:) %line(t,Y) 图 10.3.4_2_2(3)在“图对象”上,对轴的缺省属性 DefaultAxesLineStyleOrder 和 DefaultAxesColorOrder 设置所产生的影响

9、:以“红实蓝实红虚蓝虚”的循环次序绘线。clf resetset(gcf,DefaultAxesLineStyleOrder,-|:);set(gcf,DefaultAxesColorOrder,1 0 0;0 0 1);line(t,Y) 图 10.3.4_2_310.4 为低层指令绘图准备图/轴10.4.1 NextPlot属性10.4.2 准备图/轴的简捷指令newplot10.4.3 高层绘图文件的形成【例10.4.3-1】高层作图函数 surf.m 文件与底层作图指令 surface 的关系。surf.m function h = surf(varargin)cax = newplo

10、t; % 准备图形窗和轴,并返回轴句柄。if nargin = 0 error(Not enough input arguments.)elseif nargin = 1 if min( size( varargin1 ) ) = 1 error(Input argument must be a matrix not a vector or a scalar) else hh = surface(varargin1); % 单输入宗量格式创建面 endelse hh = surface(varargin:); % 多输入宗量格式创建面endnext = lower(get(cax,NextPl

11、ot); % 把大写字母变为小写if ishold % 假如当前图形不处在hold on状态为真view(3) % 在默认视点观看三维图形grid on % 画分格线endif nargout = 1 h = hh; % 输出宗量数为1时,将 surface 的句柄赋给变量 h 。end10.5 图形窗的色彩资源和光标属性10.5.1 色彩资源10.5.2 光标指针10.5.2.1 预定义的指针形状10.5.2.2 自定义指针形状10.6 轴对象10.6.1 轴位框的几何属性和多轴位框10.6.2 图形名和坐标轴名的句柄操作10.6.3 轴刻度的属性控制10.6.4 坐标轴尺度、方向、位置属性

12、10.6.5 照相机属性10.7 句柄图形应用专题10.7.1 光标形状的自制【*例 10.7.1-1】自制光标指针形状(本例只能在指令窗中运行、体验)。(1)运行以下指令,在屏幕的右上方(即第一象限)创建一个背景为“橘黄”色的图形窗,窗名为“试验窗”。(图形窗的外形见图10.7.1-1-2)bdw=0.01; %左右两侧边和底边的宽度tpw=0.15; %顶边宽度不能太小pos=1/2+bdw,2/3+bdw,1/2-2*bdw,1/3-bdw-tpw; %figure(Units,normalized,Position,pos,Color,0.9,0.65,0) %set(gcf,Name

13、,试验窗) % (2)为该图形窗制作一个“手指”状光标指针P=ones(16,16)*NaN;P(1,5)=1;P(2:14,4)=1;P(15,5)=1;P(16,6:11)=1;P(15,12)=1;P(9:14,13)=1;P(2:9,6)=1;P(9,7)=1;P(8,8)=1;P(9,9)=1;P(8,10)=1;P(9,11)=1;P(8,12)=1;P(2:14,5)=2;P(10:15,6:11)=2;P(9,8)=2;P(9,10)=2;P(9:14,12)=2;set(gcf,Pointer,Custom,PointerShapeCData,P,PointerShapeHo

14、tSpot,2,5) 图10.7.1-1-2 自定义窗名、背景色和光标形状的图形窗10.7.2 任意布置子图和轴外注释【*例 10.7.2-1】本例演示:axes轴位框设计、rectangle的运用、及轴外注释。所谓轴外注释,实际上是使用了两个轴位框。一个轴位框充满全部图形窗,其坐标框被隐去,而只写注释文字。而另一个比较小的轴位框用于绘图。这样从外表看去,注释就处于那小轴位框的外部。clf%图形数据的产生zeta2=0.2 0.4 0.6 0.8 1.0;n=length(zeta2);for k=1:n;Numk,1=1;Denk,1=1 2*zeta2(k) 1;endS=tf(Num,D

15、en); %产生单输入多输出系统t=(0:0.4:20); %时间采样点Y,x=step(S,t); %单输入多输出系统的响应tt=t*ones(size(zeta2); %为画彩带图,生成与函数值Y维数相同的时间矩阵。%产生全窗轴位框,并隐去坐标轴clf reset,H=axes(Position, 0, 0, 1, 1, Visible, off);%产生包含多行字符串的元胞数组str1=fontname隶书二阶系统阶跃响应; %str2=y(t) = 1 - beta-1e-zetatsin(betat + theta);str3= ;str4=fontname隶书其中:;str5=be

16、ta = (1 - zeta2)0.5;str6=theta = arctg(beta/zeta);str7=zeta = .2, .4, .6, .8, 1; %使H句柄轴对象成为当前轴,然后注释多行文字。set(gcf, CurrentAxes,H) %text(0.01, 0.73, str, FontSize, 12) %h1=axes(Position, 0.45, 0.45, 0.5, 0.5); %产生右半窗的轴位框ribbon(tt,Y,0.4) %在h1轴位框中画彩带图%对X轴、Z轴重标刻度值set(h1,XTickLabelMode,manual,XTickLabel,0|

17、0.4|0.8|1.2);%set(h1,ZTickLabel,0|1.0|2.0); %低层指令标识轴名set(get(h1,XLabel),String,zeta rightarrow,Rotation,17.5)set(get(h1,YLabel),String,leftarrow t,Rotation,-25) %set(get(h1,Zlabel),String,y rightarrow)h2=axes(Position,0.03, 0.08, 0.27, 0.27);%在左下角,产生小的轴位框。plot(tt,Y) %在h2轴对象上画二维图%在右下方画系统方块框图h3=axes(P

18、osition,0.37,0.04,0.63,0.32); %设置画框图的轴位框set(h3,Xlim,0,1.2,Ylim,0,0.5) %设置轴的刻度范围set(h3,DataAspectRatio,1 1 1) %设置刻度比例set(h3,ColorOrder,0,0,0) %设置绘线的首选用色set(h3,Visible,off) %隐去坐标轴hh1=rectangle(Position,0.5,0.2,0.4,0.2,Curvature,0,0); %画方框 hh2=rectangle(Position,0.2,0.26,0.08,0.08,Curvature,1,1); %画圆框

19、xx1=0.05:0.01:0.2;xx2=0.28:0.02:0.5;xx3=0.9:0.02:1.1;xx4=0.24:0.02:1;yy5=0.1:0.02:0.26;yy6=0.1:0.02:0.3;yy1=0.3*ones(size(xx1);yy2=0.3*ones(size(xx2);yy3=0.3*ones(size(xx3);yy4=0.1*ones(size(xx4);xx5=0.24*ones(size(yy5);xx6=ones(size(yy6);line(xx1,yy1);line(xx2,yy2);line(xx3,yy3);line(xx4,yy4);line(

20、xx5,yy5);line(xx6,yy6)line(0.17,0.3,Marker,MarkerFaceColor,k)line(0.47,0.3,Marker,MarkerFaceColor,k)line(1.1,0.3,Marker,MarkerFaceColor,k)line(0.24,0.23,Marker,MarkerFaceColor,k)line(0.17,0.35,Marker,+)text(0.27,0.23,-)text(0.05,0.35,u(t)text(1,0.35,y(t)text(0.6,0.26,s2 + 2zetas);xx7=0.56:0.02:0.84;

21、yy7=0.3*ones(size(xx7);line(xx7,yy7)text(0.68,0.35,1) 图10.7.2-1 轴属性设置的综合演示10.7.3 制作个性化双坐标系【*例 10.7.3-1】制作一个双坐标系用来表现高压和低温两个不同量的过渡过程。tp=(0:100)/100*5;yp=8+4*(1-exp(-0.8*tp).*cos(3*tp); %压力数据tt=(0:500)/500*40;yt=120+40*(1-exp(-0.05*tt).*cos(tt); %温度数据%产生双坐标系图形clf reset,h_ap=axes(Position,0.13,0.13,0.7,

22、0.75); %set(h_ap,Xcolor,b,Ycolor,b,Xlim,0,5,Ylim,0,15);nx=10;ny=6; %pxtick=0:(5-0)/nx):5;pytick=0:(15-0)/ny):15; %set(h_ap,Xtick,pxtick,Ytick,pytick,Xgrid,on,Ygrid,on)h_linet=line(tp,yp,Color,b); %set(get(h_ap,Xlabel),String,时间 rightarrow (分))set(get(h_ap,Ylabel),String,压力 rightarrow(times10 5 Pa )h

23、_at=axes(Position,get(h_ap,Position); %set(h_at,Color,none,Xcolor,r,Ycolor,r); %set(h_at,Xaxislocation,top) %set(h_at,Yaxislocation,right,Ydir,rev) %set(get(h_at,Xlabel),String,fontsize15fontname隶书时间 rightarrow (分))set(get(h_at,Ylabel),String, ( circC )fontsize15 leftarrow fontname隶书零下温度)set(h_at,Yl

24、im,0,210) %line(tt,yt,Color,r,Parent,h_at) %xpm=get(h_at,Xlim); %txtick=xpm(1):(xpm(2)-xpm(1)/nx):xpm(2); %tytick=0:(210-0)/ny):210; %set(h_at,Xtick,txtick,Ytick,tytick) % 图10.7.3-1 双坐标系图形10.7.4 连续变焦和飞驰图形【*例 10.7.4-1】通过CameraPosition设置的不断变化,使地球迎面飞来,贯穿而过,从地球另一面飞离而去。但在整个飞行过程中,相机镜头始终对着地球。(1)编写三维地球生成程序e

25、arth_zzy.m 函数文件earth_zzy.mfunction earth_zzy(ap)%erath_zyy.m 绘制三维地球% ap 取0时,相机视角采用自动设置;% 取1时,相机视角取缺省值的十分之一,因此地球显得较大。load topo %装载图象topo 和相应的图象色图 topomap1 figure(colormap,topomap1,Color,.8 .8 .8); %设置图形窗的色图和背景色x,y,z = sphere(50);azzy.DataAspectRatio = 1 1 1;azzy.PlotBoxAspectRatioMode = auto;fa = axe

26、s(Visible,off, azzy); %设置轴的数据宽高比和坐标框三度比szzy1.AmbientStrength = 0.1;szzy1.DiffuseStrength = 1;szzy1.SpecularColorReflectance = .5; szzy1.SpecularExponent = 20;szzy1.SpecularStrength = 1;surface(x,y,z,szzy1,FaceLighting,phong,FaceColor,texture,. EdgeColor,none,Cdata,topo,Parent,fa);%设置面对象 if ap=1,set(

27、fa,CameraViewAngle,0.1*get(fa,CameraViewAngle);end light(position,-1 0 1,color,0.5 1 0.5);light(position,-1.5 0.5 -0.5,color,.6 .2 .2);light(Position,1.5 1.5 -1);light(Position,0 -1.5 0,color,0.6 0.6 1);view(-17 26) (2)运行erath_zzy可以画出如下三维地球图。(在Notebook和指令窗中均可运行)earth_zzy(0) 图10.7.4-1 三维地球图形(3)编写飞驰程序fly_zzy.m脚本文件fly_zzy.m%fly_zzy.m 连续改变相机位置,产生贯穿地球的效果earth_zzy(0) % 调用函数文件,产生三维地球图形。 set(gca,CameraViewAngleMode,manual) %pos=get(gca,CameraPosition); %获取相机初始位置 tar=get(gca,CameraTarget); %获取相机目标位置kk=(0:2:40)/15;nk=length(k

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1