matlab数学实验答案page203,CHAP203.DOC_西安交通大学:MATLAB程序设计_doc_大学课件预览_高等教育资讯网...

20.11 M文件例子精通MATLAB工具箱含有许多实用函数,它们可以验证本章的许多概念。这些函数的基本部分已经在二维和三维图形这些章阐述过了。有了前面对句柄图形的讨论,我们现在可以更彻底地讨论这些函数。最简单的精通MATLAB工具箱的函数之一提出了一个共同的问题。MATLAB函数gcf返回当前图形的句柄。但是,它有一个副作用。如果图形不存在,gcf就创建一个,并返回它的句柄。如果想寻找一个图形是否存在于头一个位置,要是没有,又不得不创建,怎么办?函数mmgcf正好实现由其内容所描述的工作。function HF=mmgcf%MMGCF Get Current Figure if it Exists.% MMGCF returns the handle of the current figure if it exists.% If no current figure exists,MMGCF returns an empty handle.%% Note that the function GCF is different.It creates a figure and returns its handle if it does not % exist.% Copyright (c) 1996 by Prentice-Hall,Inc.Hf=get(0, ‘Children’ ); % check for figure childrenif isempty(Hf)returnelseHf=get(0, ‘CurrentFigure’ );end函数mmgcf首先检查根对象的子对象的图形是否存在,如至少有一个图形对象时,根对象的 ‘CurrentFigure’ 属性就返回当前的图形。函数mmgca为坐标轴对象执行同样的功能,如同在它的M文件内所描述的那样。function Ha=mmgca%MMGCA Get Current Axes if it exists.% MMGCA returns the handle of the current axes if it exists.% If no current axes exists,MMGCA returns an empty handle.%% Note that the function GCA is diffent.It create a figure and an axes and returns the axes % handle if they do not exist.% Copyright (c) 1996 by Prentice-Hall,Inc.Ha=findobj(0, ‘Type’ , ‘axes’ );if isempty(Ha)returnelseHa=get(get(0, ‘CurrentFigfure’ ), ‘CurrentAxes’ );end由于函数gco已经表现出当对象不存在时返回空矩阵的行为特性,就不需要函数mmgco了。在精通MATLAB工具箱中的另一个函数是mmzap,在二维图形那一章里已作过介绍。如下M文件中所示,它使用mmgcf作错误检查,与findobj和get一起删除一个指定的图形。function mmzap(arg)%MMZAP Delete graphics object using mouse.% MMZAP waits for a mouse click on an object in a figure window and deletes the object.% MMZAP or MMZAP text erases text objects.% MMZAP axes erases axes objects.% MMZAP line erases line objects.% MMZAP surf erases surface objects.% MMZAP patch erases patch objects.%% Clicking on an object other than the selected type or striking a key on the keyboard aborts % the command.% Copyright (c) 1996 by Prentice-Hall,Inc.if nargin<1,arg= ‘text’ ;endHf=mmgcf;if isempty(Hf),error( ‘No Figure Available.’ ),endif length(findobj(0, ‘Type’ , ‘figure’ ))==1figure(Hf) % bring only figure forwordendkey=waitforbuttonpress; % pause untill user takes some actionif key % key on keyboard pressedreturn % take no actionelse % object selectedobject=gco % get object selected by buttonpresstype=get(object, ‘Type’ );if all(type(1:4)==arg(1:4)) % delete only if ‘Type’ is correctdelete(object)endend在编写句柄图形函数的M文件时,函数mmzap描述了一种很有用的技术。它利用函数waitforbuttonpress和gco的结合用鼠标来获取所选定对象的句柄。waifortbuttonpress是一个MATLAB内置函数,它的功能是等待鼠标点击或按键。它的帮助文本如下:? help waitforbuttonpressWAITFOR BUTTONPRESS Wait for key/buttonpress over figure.T= WAITFOR BUTTONPRESS stops program execution untill a key or mouse button is pressed over a figure window.Returns 0 when terminated by a mouse buttonpress,or 1 when terminated by a keypress.Additional information about the terminating event is available from the current figure.See also GINPUT,GCF.帮助信息:WAITFORBUTTONPRESS等待一个鼠标/按钮对图形按下。T=WAITFORBUTTONPRESS停止程序的执行,直到鼠标按钮或键在一个图形窗口按下。当鼠标按钮按下时返回0;当键按下时返回1。其它的结束事件的信息可从当前的图形中窗口获取。参阅GINPUT和GCF。鼠标按钮在鼠标指针指的图形上按下后,函数gco返回所点中对象的句柄。然后,该句柄可用来操作选中的对象。在精通MATLAB工具箱中,用这种简单的选择技术的函数还有mmline和mmaxes。其中,mmline的M文件描述如下:function mmline(arg1,arg2, arg3, arg4, arg5, arg6)%MMLINE Set Line Properties Using Mouse% MMLINE waites for a mouse click on a line then applies the desired properties to the % selected line.% Properties are given in parts,e.g.,MMLINE Name value...% Properties:% NAMEVALUE{default}% color [Y m c r g b w k] or an RGB in quotes: ‘[r g b]’ % style [- -- ; -.]% mark [o + . * X]% width points for linewidth {0.5}% size points for marker size {6}% zap (n.a.)delete selected line% Examples:% MMLINE color r width 2 sets color to red and width to 2 points% MMLINE mark + size 8 sets marker type to + and size to 8 points%% Clicking on an object other than a line,or striking a key on the keyboard aborts the % command.% Copyright (c) 1996 by Prentice-Hall,Inc.Hf=mmgcf;if isempty(Hf),error( ‘No Figure Avaiable.’ ),endif length(get(0, ‘Children’ ))==1figure(Hf) % bring only figure forwordendkey=waitforbuttonpress;if key % key on keyboard pressedreturnelse % object selectedHl=gcoif strcmp(get(Hl, ‘Type’ ), ‘line’ ) % line object selectedfor i=1:2:max(nargin-1,1)Name=eval(sprintf( ‘arg%.0f ‘ ,i),[]); get Name argumentif strcmp(Name, ‘zap’ )delete(Hl),returnendvalue=eval(sprintf( ‘arg%.0f ‘ ,i+1),[]); % get valueif strcmp(Name, ‘color’ )set(Hl, ‘Color’ ,value)elseif strcmp(Name, ‘style’ )set(Hl, ‘Linestyle’ ,value)elseif strcmp(Name, ‘mark’ )set(Hl, ‘Linestyle’ ,value)elseif strcmp(Name, ‘width’ )value=abs(eval(value))set(Hl, ‘LineWidth’ ,value)elseif strcmp(Name, ‘size’ )value=abs(eval(value))set(Hl, ‘MarkerSize’ ,value)else disp([ ‘Unknown Property Name: ‘ Name’])endendendend精通MATLAB工具箱中的函数mmpaper以简单的方式阐述了对纸张属性的使用。如下所示,函数mmpaper设置当前图形的纸张属性,并将所有以后的图形设成缺省值。函数mmpage在下一章讨论,它是一个mmpaper友函数。mmpage建立一个图形用户界面,设定图形在打印页上的位置。function mmpaper(arg1,arg2,arg3,arg4,arg5,arg6)%MMPAPER Set Default Paper Properties.% MMPAPER Name value...% sets default paper properties for the current figure and succeeding figures based on Name % value pairs.% Properties:% NAMEVALUE {default}% Units [{inches},centimeters,points,normal]% orient [{portrait},landscape]% type [{usletter},uslegal,a3,a4letter,a5,b4,tabloid]%% Examples:% MMPAPER Units inch orient landscape% MMPAPER type tabloid%% MMPAPER with no arguments returns the current paper defaults.% Copyright (c) 1996 by Prentice-Hall,Inc.Hf=mmgcf;flag=0;if isempty(Hf)flag=1;Hf=figure( ‘Visible’ , ‘off ‘ );endif narginfor i=1:2:max(nargin-1,1)Name=eval(sprintf( ‘arg%.0f ‘ ,i)0,[]); % get Name argumentvalue=eval(sprintf( ‘arg%.0f ‘ ,i+1)0,[]); % get Name argumentif Name(1)== ‘o’ set(0, ‘DefaultFigurePaperOrientation’ ,value)set(Hf, ‘PaperOrientation’ ,value)elseif Name(1)== ‘t’ set(0, ‘DefaultFigurePaperType’ ,value)set(Hf, ‘PaperType’ ,value)elseif Name(1)== ‘u’ set(0, ‘DefaultFigurePaperUnits’ ,value)set(Hf, ‘PaperUnits’ ,value)elsedisp([ ‘Unknown Property Name:’ Name])ensendend当把对象放在一个特定的位置时,有时在象素和归一化坐标之间进行转化是很有用的。在精通MATLAB工具箱中有两个函数进行这种转换。第一个是mmpx2n,它将象素转化为归一化坐标;第二个是mmn2px,它进行相反的转换。这些函数演示了如何以所需的一组单位获取 ‘Position’ 属性值。首先,把对象的当前 ‘Units’ 属性保存起来;然后,将 ‘Units’ 属性设成所需的值并获取所需的 ‘Position’ 属性值;最后,将 ‘Units’ 的值恢复为初始值。mmpx2n的M文件描述如下:function Y=mmpx2n(X,Hf)%MMPX2N Pixel to Normalized Coordinate Transformation.% MMPX2N(X) converts the Position vector X from pixel coordinates to normalized % coordinates w.r.t.the computer screen.% % MMPX2N converts the Position vector X from pixel coordinate to narmalized coordinates% w.r.t.the figure windoiw having handle H.%% X=[left bottom width height] or X=[width height]% Copyright (c) 1996 by Prentice-Hall,Inc.msg= ‘Input is not a pixel Position vector.’ ;lx=length(X);sz= ‘Position’ ;if nargin==1,Hf=0;sz= ‘ScreenSize’ ;endif any(X<1)| (lx~=4&lx~=2)error(msg)endif lx==2,X=[1 1 X(:)’ ];end % [width height] input formatu=get(Hf, ‘Units’ ); % get Unitsset (Hf, ‘Units’ , ‘pixels’ ); % set Units to pixelss=get(Hf,sz);Y=(X-1)./([s(3:4)]-1); % convertset(Hf, ‘Units’ ,u); % reset Unitsif any(Y>1)error(msg)endif lx==2,Y=Y(3:4);end % [width height] output format精通MATLAB工具箱中的两个函数mmcont2和mmcont3都用用户指定的颜色映象画等值线图。每一个函数分析输入参量并建立一个字符串,它包含了颜色的说明。一旦设置了字符串,就设置了当前坐标轴的 ‘ColorOrder’ 属性;最后,它们分别调用具有合适的参量的函数contour和contour3来画出图形。函数mmcont2的M文件描述如下:function[cs,h]=mmcont2(arg1,arg2,arg3,arg4,arg5)%MMCONT2 2-D contour plot using a colormap.% MMCONT2(X,Y,Z,N,C) plots N contours of Z in 2-D using the color% specified in C.C can be a linestyle and color as used in plot,% e.g., ‘r-’ ,orC can be the string Name of a colormap. X and Y% define the axis limits.% If not given default argument values are: N=10,C= ‘hot’ ,% X and Y =row and column indices of Z. Examples:% MMCONT2(Z) 10 lines with hot colormap% MMCONT2(Z,20) 20 lines with hot colormap% MMCONT2(Z, ‘copper’ ) 10 lines with copper colormap% MMCONT2(Z,20, ‘gray’ ) 20 lines with gray colormap% MMCONT2(X,Y,Z, ‘jet’ ) 10 lines with jet colormap% MMCONT2(Z, ‘c-’ ) 10 dashed lines in cyan% MMCONT2(X,Y,Z,25, ‘pink’ ) 25 lines in pink colormap%% CS=MMCONT2(…) returns the contour matrix CS as described in% CONTOURC.% [CS,H]=MMCONT2(…) returns a column vector H of handles to% line objects.% Copyright (c) 1996 by Prentice-Hall,Inc.n=10;c= ‘hot’ ; % default valuesnargs=nargin;cflag=1;if nargin<1,error( ‘Not enough input arguments.’ ), endfor i=2:nargin % check input arguments for N and Cargi=eval(sprintf( ‘arg%.0f ‘ ,i));if ~isstr(argi)&length(argi)==1 % must be N, grab itn=argi;nargs=i; % # args to pass to contour2elseif isstr(argi) % must be Cif exist(argi)==2 % is colormap,so grab itc=argi;nargs=i-1;else % is single color/linestylecflag=0;nargs=i;end endendif cflag % a colormap has been chosenclf % clear figureview(2) % make it 2-Dhold on % hold itmapstr=sprintf([c ‘(%.0f)’ ],n);set(gca,’ColorOrder’,eval(mapstr));endevalstr=‘[CS,H]=contour(’;for i=1:nargsevalstr=[evalstr sprintf( ‘arg%.0f ‘ ,i) ‘,’ ];endlstr=length (evalstr);evalstr(lstr:lstr+1)= ‘);’ ;eval(evalstr)hold offif nargout==1, cs=CS;elseif nargout==2, cs=CS;h=H;end这里要讨论的最后一个精通MATLAB工具箱函数是mmtile。就象在二维函数那一章里所描述的一样,该函数在计算机屏幕上将4个已存在的图形按平铺模式排列起来。函数mmtile.m的内容如下所示:function h=mmtile(n)% MMTILE Tile Figure Windows.% MMTILE with no arguments, tiles the current figure windows% and brings them to the foreground.% Figure size is adjusted so that 4 figure windows fit on the screen.% Figures are arranged in a clockwise fashion starting in the% upper-left corner of the display%% MMTILE(N) makes tile N the current figure if it exists.% Otherwise, the next tile is created for subsequent plotting%% Tiled figure windows are titled TILE #1,TILE #2, TILE #3, TILE #4.% Copyright (c) 1996 by Prentice-Hall,Inc.HT=40;%tile height fudge in pixelsWD=20; % tile width fudge% adjust the above as necessary to eliminate tile overlaps% bigger fudge numbers increase gaps between tilesHf=sort(get(0,‘Children’)); % get handles of current figuresnHf=length(Hf);set(0, ‘Units’ ,‘Pixels’) % set screen dimensions to pixelssz=get(0,‘Screensize’); % get screen size in pixelstsz=0.9*sz(3:4); % defaut tile area is almost whole monitorif sz(4)>sz(3), % if portrait monitortsz(2)=.75*tsz(1); % take a landscape chunk endtsz=min(tsz,[920 690]); % hold tile area on large screens to 920 by 690t1(1,1)=sz(3)-tsz(1)+1; % left side of left tiles t1(2,1)=t1(1,1)+tsz(1)/2; % left side of right tilestb(1,1)=sz(4)-tsz(2)+1; % bottom of bottom tilestb(2,1)=tb(1,1)+tsz(2)/2; % bottom of top tilestpos=zeros(4); % matrix holding tile Position vectors tpos(:,1)=t1([1 2 2 1],1); % left sidestpos(:,2)=t1([2 2 1 1],1); % bottomstpos(:,3)=(tsz(1)/2-WD)*ones(4,1); % widthstpos(:,4)=(tsz(2)/2-HT)*ones(4,1); % heightstpos=fix(tpos); % make sure pixel Positions are integersif nargin==0 % tile figures as neededfor i=1:min(nHf,4)set(Hf(i),‘Units’,‘pixels’)if any(get(Hf(i),‘Position’)~=tpos(i,:))set(Hf(i),‘Position’,tpos(i,:),…‘NumberTitle’,‘off’,…‘Name’,[‘TILE #’int2str(i)])endfigure(Hf(i))endelse % go to tile N or create itn=rem(abs(n)-1,4)+1; % N must be between 1 and 4if n<=nHf % tile N exists,make it current figure(Hf(n))else % tile N does not exist,create next onen=nHf+1;figure(‘Position’,tpos(n,:),…‘NumberTitle’,‘off’,…‘Name’,[‘TILE #’int2str(n)])endend如上面所描述的,函数mmtile从根对象得到所有的图形对象的句柄和屏幕尺寸,为该图形计算新的位置和尺寸,然后设置每个图形的 ‘Units’ , ‘Position’ , ‘Number’ 和 ‘Name’ 属性。它具有安置和缩放图形的效能,并在每个窗口标题中,改变名字字符串。HT和WT给出的号码与计算机平台有关。它们对图形的 ‘Position’ 描述窗口内的可画区域而不是外部尺寸有补偿作用。20.12 属性名和属性值下面各表中列出了MATLAB 4.2版本中的属性名和属性值。有一个星号*的属性是非文件化的。用大括号{}括起来的属性值是缺省值。表20.3根对象属性BlackAndWhiteon:{off}:自动硬件检测标志认为显示是单色的,不检测;检测显示类型*VlaxkOutUnusedSlots值为[{no}|yes]*CaptureMapCaptureMatrix由CaptureRect矩形所包围的区域内图象数据的只读矩阵,使用image来显示CaptureRect捕捉矩形的尺寸和位置,是一个4元素的向量[left,bottom,width,height],单位由Units属性指定。*CaseSen值为[{on}|off]CurrentFigure当前图形的句柄。Diaryon:{off}:会话记录将所有的键盘输入和大部分输出拷贝到文件中不将输入和输出存入文件DiaryFile一个包含diary文件名的字符串,缺省的文件名为diaryEchoon:{off}:脚本响应模式在文件执行时,显示脚本文件的每一行除非指定echo on,否则不响应Format{short}:shortE:long:longE:hex:bank:+:rat:数字显示的格式5位的定点格式5位的浮点格式15位换算过的定点格式15位的浮点格式16进制格式美元和分的定点格式显示+和-符号用整数比率逼近FormatSpacing {loose}:compact:输出间隔显示附加行的输入取消附加行的输入*HideUndocumentedno:{yes}:控制非文件式属性的显示显示非文件式属性不显示非文件式属性PointerLocation相对于屏幕左下角指针位置的只读向量[left,bottom]或[X,Y],单位由Units属性指定PointerWindow含有鼠标指针的图形句柄,如果不在图形窗口内,值为0。ScreenDepth整数,指定以比特为单位的屏幕颜色深度,比如:1代表单色,8代表256色或灰度ScreenSize位置向量[left,bottom,width,height],其中[left,bottom]常为[0 0],[width,height]是屏幕尺寸,单位由Units属性指定*StatusTable向量*TerminalHideGraphCommand文本串TerminalOneWindowno:yes:由终端图形驱动器使用终端有多窗口终端只有一个窗口*TerminalDimensions终端尺寸向量[width,height]TerminalProtocalnone:X:tek401x:tek410x:启动时终端类型设置,然后为只读非终端模式,不连到X服务器找到X显示服务器,X Windows模式Tektronix 4010/4014 仿真模式Tektronix 4100/4105仿真模式*TerminalShowGraphCommand文本串Unitsinches:centimeters:normalized:points:{pixels}:Position属性值的度量单位英寸厘米归一化坐标,屏幕的左下角映射到[0 0],右上角映射到[1 1]排字机的点,等于1/72英寸屏幕象素,计算机屏幕分辨率的最小单位*UsageTable向量ButtonDowFcnMATLAB回调字符串,当对象被选择时传给函数eval,初始值是一空矩阵Children所有图形对象句柄的只读向量Clipping{on}:off:数据限幅模式对根对象无效果对根对象无效果Interruptible{no}:yes:ButtonDowFcn回调字符串的可中断性不能被其它回调中断可以被其它回调中断Parent父对象的句柄,常为空矩阵*Selected值为[on|off]*Tag文本串Type只读的对象辨识字符串,常是rootUserData用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:对象可视性对根对象无效果对根对象无效果表20.4图形对象属性BackingStore{on}:off:为了快速重画,存储图形窗口的拷贝当一个图原来被覆盖的一部分显露时,拷贝备份,刷新窗口较快,但需要较多的内存重画图形以前被覆盖的部分,刷新较慢,但节省内存*CapterMap矩阵*Client矩阵Color图形背景色,一个3元素的RGB向量或MATLAB预定的颜色名,缺省的颜色是黑色Colormapm×3的RGB向量矩阵,参阅函数colormap*Colortable矩阵,也许包含一份系统颜色映象的拷贝CurrentAxes图形的当前坐标轴的句柄CurrentCharacter当鼠标指针在图形窗口中,键盘上最新按下的字符键CurrentMenu最近被选择的菜单项的句柄CurrentObject图形内,最近被选择的对象的句柄,即由函数gco返回的句柄CurrentPoint一个位置向量[left,bottom]或图形窗口的点的[X,Y],该处是鼠标指针最近一次按下或释放时所在的位置。FixedColorsn×3的RGB向量矩阵,它使用系统查色表中的槽来定义颜色,初始确定的颜色是black和white*FlintInvertHardcopy{on}:off:改变图形元素的颜色以打印将图形的背景色改为白色,而线条、文本和坐标轴改为黑色以打印打印的输出颜色和显示的颜色完全一致KeyPressFcn当鼠标指针处在图形内,按下键,传递给函数 eval 的MATLAB回调字符串MenuBar{figure}:none:将MATLAB菜单在图形窗口的顶部显示,或在某些系统中在屏幕的顶部显示显示缺省的MATLAB菜单不显示缺省的MATLAB菜单MinColormap颜色表输入项使用的最小数目。它影响系统颜色表。如设置太低,会使未选中的图形以伪彩色显示。Name图形框架窗口的标题(不是坐标轴的标题)。缺省时是空串,如设为string(字符串),窗口标题变为:Figure No.n:stringNextPlotnew:{add}:replace:决定新图作图行为画前建立一个新的图形窗口在当前的图形中加上新的对象在画图前,将除位置属性外的所有图形对象属性重新设置为缺省值,并删除所有子对象NumberTitle{on}:off:在图形标题中加上图形编号如果Name属性值被设为string,窗口标题是Figure No.N:string窗口标题仅仅是Name属性字符串PaperUnits{inches}:centimeters:normalized:points:纸张属性的度量单位英寸厘米归一化坐标点,每一点为1/72英寸PaperOrientation{portrait}:landscape:打印时的纸张方向肖像方向,最长页面尺寸是垂直方向景象方向,最长页面尺寸是水平方向PaperPosition代表打印页面上图形位置的向量[left,bottom,width,height],[left,bottom]代表了相对于打印页面图形左下角的位置,[width,height]是打印图形的尺寸,单位由PaperUnits属性指定PaperSize向量[width,height]代表了用于打印的纸张尺寸,单位由PaperUnits属性指定,缺省的纸张大小为[8.5 11]PaperType{usletter}:uslegal1:a3:a4letter:a5:b4:tabloid:打印图形纸张的类型。当PaperUnits设定为归一化坐标时,MATLAB使用PaperType来按比例调整图形的大小标准的美国信纸标准的美国法定纸张欧洲A3纸欧洲A4信纸欧洲A5纸欧洲B4纸标准的美国报纸Pointercrosshair:{arrow}:watch:top1:topr:bot1:botr:circle:cross:fleur:鼠标指针形状十字形指针箭头钟表指针指向左上方的箭头指向右上方的箭头指向左下方的箭头指向右下方的箭头圆双线十字形4头箭形或指南针形Position位置向量[left,bottom,width,height],[left,bottom]代表了相对于计算机屏幕的左下角窗口左下角的位置,[width,height]是屏幕尺寸,单位由Units属性指定Resize{on}:off:允许不允许交互图形重新定尺寸窗口可以用鼠标来重新定尺寸窗口不能用鼠标来重新定尺寸ResizeFcnMATLAB回调字符串,当窗口用鼠标重新定尺寸时传给函数eval*Scrolled值为[{on}|off]SelectionType{normal}:extended:alt:open:一个只读字符串,提供了有关最近一次鼠标按钮选择所使用方式的信息。但实际是哪个键和/或按钮按下与平台有关点击(按下和释放)鼠标左键,或只是鼠标按钮按下shift键并进行多个常规(normal)选择;同时击双按钮鼠标的两个按钮;或点击一个三按钮鼠标的中按钮按下Control键并进行一次常规选择;或者点击一个双按钮或三按钮鼠标的右按钮双击任何鼠标按钮Share Colorsno:{yes}:共享颜色表的槽不和其它窗口共享颜色表的槽只要可能,重用颜色表中的槽*StatusTable向量Unitsinches:centimeters:normalized:points:{pixels}:各种位置属性值的度量单位英寸厘米归一化坐标,屏幕的左下角映射到 [0 0],右上角映射到 [1 1]排字机的点,等于1/72英寸屏幕象素,计算机屏幕分辨率的最小单位*UsageTable向量WindowButtonDownFcn当鼠标指针在图形内时,只要按一个鼠标按钮, MATLAB回调字符串传递给函数evalWindowButtonMotionFcn当鼠标指针在图形内时,只要移动一个鼠标按钮,MATLAB回调字符串传递给函数eval*WindowID长整数ButtonDownFcn当图形被选中时,MATLAB回调字符串传递给函数eval;初始值是一个空矩阵Children图形中所有子对象句柄的只读向量;坐标轴对象,uicontrol对象和uimenu对象Clipping{on}:off:数据限幅模式对图形对象不起作用对图形对象不起作用Interruptible{no}:yes:指定图形回调字符串是否可中断不能被其它回调中断可以被其它回调中断Parent图形父对象的句柄,常是0*Selected值为[on|off]*Tag文本串Type只读的对象辨识字符串,常是figureUserDate用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:图形窗口的可视性窗口在屏幕上可视窗口不可视表20.5坐标轴对象属性AspectRatio纵横比向量[axis_ratio,data_ratio],这里axis_ratio是坐标轴对象的纵横比(宽度/高度),data_ratio是沿着水平轴和垂直轴的数据单位的长度比。如设置,则MATLAB建立一个最大的坐标轴,保留这些比率,该最大轴将在Position定义的矩形内拟合。该属性的缺省值为[NaN,NaN]Boxon:{off}:坐标轴的边框将坐标轴包在一个框架或立方体内不包坐标轴CLim颜色界限向量[cmin cmax],它确定将数据映射到颜色映象。cmin是映射到颜色映象第一个入口项的数据,cmax是映射到最后一项的数据。参阅函数cmaisCLimMode{auto}:manual:颜色限制模式颜色界限映成轴子对象的数据整个范围颜色界限并不自动改变。设置CLim就把CLimMode值设为人工Color坐标轴背景颜色。一个三元素的RGB向量或一个预定义的颜色名。缺省值是none,它使用图形的背景色ColorOrder一个m×3 RGB值矩阵。如果线条颜色没有用函数plot和plot3指定,就用这些颜色。缺省的ColorOrder为黄,紫红,洋红,红,绿和蓝CurrentPoint包含在坐标轴空间内的一对点的坐标矩阵,它定义了从坐标空间前面延伸到后面的一条三维直线。其形式是[xb yb zb :xf yf zf]。单位在Units属性中指定。点[xf yf zf]是鼠标在坐标轴对象中上一次点击的坐标DrawMode{normal}:fast:对象生成次序将对象排序,然后按照当前视图从后向前绘制按已建立的次序绘制对象,不首先排序*ExpFontAngle值为[{normal}|italic|oblique]*ExpFontName缺省值为Helvetica*ExpFontSize缺省值为8点*ExpFontStrikeThrough值为[on|{off}]*ExpFontUnderline值为[on|{off}]*ExpFontWeight值为[light|{normal}|demi|bold]FontAngle{normal}:italic:oblique:坐标轴文本为斜体正常的字体角度斜体某些系统中为斜体FontName坐标轴单位标志的字体名。坐标轴上的标志并不改变字体,除非通过设置XLabel,YLabel和ZLable属性来重新显示它们。缺省的字体为HelveticaFontSize坐标轴标志和标题的大小,以点为单位,缺省值为12点*FontStrikeThrough值为[on|{off}]*FontUnderline值为[on|{off}]FontWeightlight:{normal}:demi:bold:坐标轴文本加黑淡字体正常字体适中或者黑体黑体GridLineStyle-:--:{:}:-.:格栅线形实线虚线点线点划线*Layer值为[top|{bottom}]LineStyleOrder指定线形次序的字符串,用在坐标轴上画多条线。例如:’ .- | : | -- | - ‘ 将通过点划线、点线、虚线和实线循环。LineStyleOrder缺省值为 ‘-’ ,即只有实线LineWidthX ,Y和Z坐标轴的宽度。缺省值为0.5点*MinorGridLineStyle值为[ - | - - | {:} | -. ]NextPlotnew:add:{replace}:画新图时要采取的动作在画前建立新的坐标轴把新的对象加到当前坐标轴,参阅hold在画前,删除当前坐标轴和它的子对象,并用新的坐标轴对象来代替它Position位置向量[left,bottom,width,height],这里[left,bottom]代表了相对于图形对象左下角的坐标轴左下角位置,[width,height]是坐标轴的尺寸,单位由Units属性指定TickLength向量[2Dlength 3Dlength],代表了在二维和三维视图中坐标轴刻度标记的长度。该长度是相对于坐标轴的长度。缺省值为[0.01 0.01],代表二维视图坐标轴长度的1/100,三维视图坐标轴长度的5/1000TickDirin:out:值为[{in}|out]刻度标记从坐标轴线向内,二维视图为缺省值刻度标记从坐标轴线向外,三维视图为缺省值Title坐标轴标题文本对象的句柄Unitsinches:centimeters:{normalized}:points:pixels:位置属性值的度量单位英寸厘米归一化坐标,对象左下角映射到[0 0],右上角映射到[1 1]排字机的点,等于1/72英寸屏幕象素,计算机屏幕分辨率的最小单位View向量[az el],它代表了观察者的视角,以度为单位。az为方位角或视角相对于负Y轴向右的转角;el为X-Y平面向上的仰角。详细细节见三维图形这一章XColorRGB向量或预定的颜色字符串,它指定X轴线、标志、刻度标记和格栅线的颜色。缺省为white(白色)XDir{normal}:reverse:X值增加的方向X值从左向右增加X值从右向左增加XForm一个4×4的视图转换矩阵。设置view属性影响XFormXGridon:{off}:X轴上的格栅线X轴上每个刻度标记处画格栅线不画格栅线XLabelX轴标志文本对象的句柄XLim向量[xmin xmax],指定X轴最小和最大值XLimMode{auto}:manual:X轴的界限模式自动计算XLim,包括所有轴子对象的XData从XLim取X轴界限*XMinorGrid值为[on|{off}]*XMinorTicks值为[on|{off}]Xscale{linear}:log:X轴换算线形换算对数换算XTick数据值向量,按此数据值将刻度标记画在X轴上,将XTick设为空矩阵就撤消刻度标记XTickLabels文本字符串矩阵,用在X轴上标出刻度标记。如果是空矩阵,那么MATLAB在刻度标记上标出该数字值XTickLabelMode{auto}:manual:X轴刻度标记的标志模式X轴刻度标记张成XData从XTickLabels中取X轴刻度标记XTickMode{auto}:manual:X轴刻度标记的间隔模式X轴刻度标记间隔以张成XData从XTick生成X轴刻度标记YColorRGB向量或预定的颜色字符串,它指定Y轴线、标志、刻度标记和格栅线的颜色。缺省为white(白色)YDir{normal}:reverse:Y值增加的方向Y值从左向右增加Y值从右向左增加YGridon:{off}:Y轴上的格栅线Y轴上每个刻度标记处画格栅线不画格栅线YLabelY轴标志文本对象的句柄YLim向量[Ymin Ymax],指定Y轴最小和最大值YLimMode{auto}:manual:Y轴的界限模式自动计算YLim,包括所有轴子对象的YData从YLim取Y轴界限*YMinorGrid值为[on|{off}]*YMinorTicks值为[on|{off}]Yscale{linear}:log:Y轴换算线形换算对数换算YTick数据值向量,按此数据值将刻度标记画在Y轴上。将YTick设为空矩阵就消去刻度标记YTickLabels文本字符串矩阵,用在Y轴上标出刻度标记,如果是空矩阵,那么MATLAB在刻度标记上标出该数字值YTickLabelMode{auto}:manual:Y轴刻度标记的标志模式Y轴刻度标记张成YData从YTickLabels中取Y轴刻度标记YTickMode{auto}:manual:Y轴刻度标记的间隔模式Y轴刻度标记间隔以张成YData从YTick生成Y轴刻度标记ZColorRGB向量或预定的颜色字符串,它指定Z轴线、标志、刻度标记和格栅线的颜色。缺省为white(白色)ZDir{normal}:reverse:Z值增加的方向Z值从左向右增加Z值从右向左增加ZGridon:{off}:Z轴上的格栅线Z轴上每个刻度标记处画格栅线不画格栅线ZLabelZ轴标志文本对象的句柄ZLim向量[Zmin Zmax],指定Z轴最小和最大值ZLimMode{auto}:manual:Z轴的界限模式自动计算ZLim,包括所有轴子对象的ZData从ZLim取Z轴界限*ZMinorGrid值为[on|{off}]*ZMinorTicks值为[on|{off}]Zscale{linear}:log:Z轴换算线形换算对数换算ZTick数据值向量,按此数据值将刻度标记画在Z轴上,将ZTick设为空矩阵就撤消刻度标记ZTickLabels文本字符串矩阵,用在Z轴上标出刻度标记,如果是空矩阵,那么MATLAB在刻度标记上标出该数字值ZTickLabelMode{auto}:manual:Z轴刻度标记的标志模式Z轴刻度标记张成ZData从ZTickLabels中取Z轴刻度标记ZTickMode{auto}:manual:Z轴刻度标记的间隔模式Z轴刻度标记间隔以张成ZData从ZTick生成Z轴刻度标记ButtonDownFcnMATLAB回调字符串,当坐标轴被选中时,将它传递给函数eval;初始值是一个空矩阵Children除了轴标志和标题对象以外,所有子对象句柄的只读向量;包括线、曲面、图象、补片和文本对象Clipping{on}:off:数据限幅模式对坐标轴对象不起作用对坐标轴对象不起作用Interruptible{no}:yes:指定ButtonDownFcn回调字符串是否可中断该回调字符串不能被其它回调所中断该回调字符串可以被其它回调所中断Parent包含坐标轴对象的图形句柄*Selected值为[on|{off}]*Tag文本串Type只读的对象辨识字符串,常为axesUserData用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:轴线、刻度标记和标志的可视性坐标轴在屏幕上可视坐标轴不可视表20.6线条对象属性Color线条颜色。一个三个元素RGB向量或MATLAB预定的颜色名之一。缺省值是white(白色)EraseMode{normal}:backgrount:none:消除和重画模式重画影响显示的作用区域,以保证所有的对象正确地画出。这是最精确的,也是最慢的一种模式通过在图形背景色中重画线来消除线条。这会破坏被消除的线后的对象xor:用线下屏幕的颜色执行异或OR(XOR)运算,画出和消除线条。当画在其它对象上时,可造成不正确的颜色当移动或删除线条时该线不会被消除LineStyle{-}:--:::-.:+:o:*:.:X:线形控制画通过所有数据点的实线画通过所有数据点的虚线画通过所有数据点的点线画通过所有数据点的点划线用加号作记号,标出所有的数据点用圆圈作记号,标出所有的数据点用星号作记号,标出所有的数据点用实点作记号,标出所有的数据点用X符号作记号,标出所有的数据点LineWidth以点为单位的线宽。缺省值是0.5MarkerSize以点为单位的记号大小,缺省值是6点Xdate线的X轴坐标的向量Ydate线的Y轴坐标的向量Zdate线的Z轴坐标的向量ButtonDownFcn当线条对象被选中时,MATLAB回调字符串传递给函数eval;初始值是一个空矩阵Children空矩阵,线条对象没有子对象Clipping{on}:off:数据限幅模式在坐标轴界限外的线的任何部分不显示线条数据不限幅Interruptible{no}:yes:指定ButtonDownFcn回调字符串是否可中断不能被其它回调中断可以被其它回调中断Parent包含线条对象的坐标轴句柄*Selected值为[on|{off}]*Tag文本串Type只读的对象辨识字符串,常为lineUserData用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:线的可视性线在屏幕上可视线在屏幕上不可视表20.7文本对象属性Color线条颜色。一个三个元素RGB向量或MATLAB预定的颜色名之一。缺省值是white(白色)EraseMode{normal}:backgrount:xor:none:消除和重画模式重画影响显示的作用区域,以保证所有的对象正确地画出。这是最精确的,也是最慢的一种模式通过在图形背景色中重画文本来消除文本。这会破坏被消除的文本后的对象用文本下屏幕颜色执行异或OR(XOR)运算,画出和消除该文本。当画在其它对象上时,会造成不正确的颜色当移动或删除文本时该文本不会被消除Extent文本位置向量[left,bottom,width,height],[left,bottom]代表了相对于坐标轴对象左下角的文本对象左下角的位置,[width,height]是包围文本串的矩形区域的大小,单位由Units属性指定FontAngle{normal}:italics:oblique:文本为斜体正常的字体角度斜体某些系统中为斜体FontName文本对象的字体名。缺省的字体名为HelveticaFontSize文本对象的大小,以点为单位,缺省值为12点*FontStrikeThrough值为[on|{off}]*FontUnderline值为[on|{off}]FontWeightlight:{normal}:demi:bold:文本对象加黑淡字体正常字体适中或者黑体黑体HorizontalAlignment{left}:center:right:文本水平对齐文本相对于它的Position左对齐文本相对于它的Position中央对齐文本相对于它的Position右对齐Position两元素或三元素向量[X Y (Z)],指出文本对象在三维空间中的位置。单位由Units属性指定Rotation{0}:±90:±180:±270:以旋转度数表示的文本方向,水平方向文本旋转±90度文本旋转±180度文本旋转±270度String要显示的文本串Unitsinches:centermeters:normalized:points:pixels:{data}:位置属性值的度量单位英寸厘米归一化坐标,对象左下角映射到[0 0],右上角映射到[1 1]排字机的点,等于1/72英寸屏幕象素,计算机屏幕分辨率的最小单位父坐标轴的数据单位VerticalAlignmenttop:cap:{middle}:baseline:bottom:文本垂直对齐文本串放在指定的Y位置顶部字体的大写字母的高度在指定的Y位置文本串放在指定的Y位置中央字体的基线在指定的Y位置文本串放在指定的Y位置底部ButtonDownFcn当文本对象被选中时,MATLAB回调字符串传递给函数eval;初始值是一个空矩阵Children空矩阵,文本对象没有子对象Clipping{on}:off:数据限幅模式在坐标轴界限外的文本的任何部分不显示文本数据不限幅Interruptible{no}:yes:指定ButtonDownFcn回调字符串是否可中断不能被其它回调中断可以被其它回调中断Parent包含文本对象的坐标轴句柄*Selected值为[on|{off}]*Tag文本串Type只读的对象辨识字符串,常为textUserData用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:文本的可视性文本在屏幕上可视文本在屏幕上不可视表20.8曲面对象属性CData指定ZData中每一点颜色的数值矩阵。如果CData的大小与ZData不同,CData中包含的图象被映射到ZData所定义的曲面EdgeColornone:{flat}:interp:A ColorSpec:曲面边缘颜色控制不画边缘线边缘线为单一颜色,由该面CData的第一个入口项决定。缺省值是black(黑色)各边缘的颜色由顶点的值通过线性插值得到3元素RGB向量或MATLAB预定的颜色名之一,指定边缘的单一颜色。缺省值是black(黑色)EraseMode{normal}:backgrount:xor:none:消除和重画模式重画影响显示的作用区域,以保证所有的对象正确地画出。这是最精确的,也是最慢的一种模式通过在图形背景色中重画曲面来消除曲面。这会破坏被消除的曲面后的对象用曲面下屏幕颜色执行异或OR(XOR)运算,画出和消除曲面。当画在其它对象上时会造成不正确的颜色当移动或删除曲面时该曲面不会被消除FaceColornone:{flat}:interp:A ColorSpec:曲面表面颜色控制不画表面,但画出边缘第一个CData入口项决定曲面颜色各面颜色由曲面网格点通过线性插值得到3元素RGB向量或MATLAB预定的颜色名之一,指定表面为单一颜色LineStyle{-}:--:::-.:+:o:*:.:X:边缘线形控制画通过所有网格点的实线画通过所有网格点的虚线画通过所有网格点的点线画通过所有网格点的点划线用加号作记号,标出所有的网格点用圆圈作记号,标出所有的网格点用星号作记号,标出所有的网格点用实点作记号,标出所有的网格点用X符号作记号,标出所有的网格点LineWidth边缘线的宽度,缺省值是0.5点MarkerSize边缘线的记号大小,缺省值是6点MeshStyle{both}:row:column:画行和/或列线画所有的边缘线只画行边缘线只画列边缘线*PaletteMode值为[{scaled}|direct|bypass]XData曲面中点的X坐标YData曲面中点的Y坐标ZData曲面中点的Z坐标ButtonDownFcn当曲面对象被选中时,MATLAB回调字符串传递给函数eval;初始值是一个空矩阵Children空矩阵,曲面对象没有子对象Clipping{on}:off:数据限幅模式在坐标轴界限外的曲面的任何部分不显示曲面数据不限幅Interruptible{no}:yes:指定ButtonDownFcn回调字符串是否可中断不能被其它回调中断可以被其它回调中断Parent包含曲面对象的坐标轴句柄*Selected值为[on|{off}]*Tag文本串Type只读的对象辨识字符串,常为surfaceUserData用户指定的数据,可以是矩阵、字符串等等Viible{on}:off:曲面的可视性曲面在屏幕上可视曲面在屏幕上不可视表20.9补片对象属性CData指定沿补片边缘每一点颜色的数值矩阵。只有EdgeColor或FaceColor被设为interp或flat时才使用EdgeColornone:{flat}:interp:A ColorSpec:补片边缘颜色控制不画边缘线边缘线为单一颜色,由补片颜色数据的均值指定。缺省值是black(黑色)边缘颜色由补片顶点的值通过线性插值得到三元素RGB向量或MATLAB预定的颜色名之一,指定边缘为单一颜色。缺省值是black(黑色)EraseMode{normal}:backgrount:xor:none:消除和重画模式重画影响显示的作用区域,以保证所有的对象正确地画出。这是最精确的,也是最慢的一种模式通过在图形背景色中重画补片来消除该补片。这会破坏被消除的补片后的对象用补片下屏幕颜色执行异或OR(XOR)运算,画出和消除补片。当画在其它对象上时会造成不正确的颜色当移动或删除补片时该补片不会被消除FaceColornone:{flat}:interp:A ColorSpec:补片表面颜色控制不画表面,但画出边缘颜色参量c中的值决定各补片的表面颜色各表面颜色由CData属性指定的值通过线性插值决定三元素RGB向量或MATLAB预定的颜色名之一,指定表面为单一颜色LineWidth轮廓线的宽度,以点为单位。缺省值为0.5点*PaletteModel值为[{scaled}|direct|bypass]XData沿补片边缘点的X坐标YData沿补片边缘点的Y坐标ZData沿补片边缘点的Z坐标ButtonDownFcn当补片对象被选中时,MATLAB回调字符串传递给函数eval;初始值是一个空矩阵Children空矩阵,补片对象没有子对象Clipping{on}:off:数据限幅模式在坐标轴界限外的补片的任何部分不显示补片数据不限幅Interruptible{no}:yes:指定ButtonDownFcn回调字符串是否可中断不能被其它回调中断可以被其它回调中断Parent包含补片对象的坐标轴句柄*Selected值为[on|{off}]*Tag文本串Type只读的对象辨识字符串,常为patchUserData用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:补片的可视性补片在屏幕上可视补片在屏幕上不可视表20.10图象对象属性CData指定图象中各元素颜色的值矩阵。image(c)将c赋给CData。CData中的元素是当前颜色映象的下标XData图象X数据;指定图象中行的位置。如忽略,使用CData中的行下标YData图象X数据;指定图象中列的位置。如忽略,使用CData中的列下标ButtonDownFcn当图象对象被选中时,MATLAB回调字符串传递给函数eval;初始值是一个空矩阵Children空矩阵,图象对象没有子对象Clipping{on}:off:数据限幅模式在坐标轴界限外的图象的任何部分不显示图象数据不限幅Interruptible{no}:yes:指定ButtonDownFcn回调字符串是否可中断不能被其它回调中断可以被其它回调中断Parent包含图象对象的坐标轴句柄*Selected值为[on|{off}]*Tag文本串Type只读的对象辨识字符串,常为imageUserData用户指定的数据,可以是矩阵、字符串等等Visible{on}:off:图象的可视性图象在屏幕上可视图象在屏幕上不可视20.13 小结句柄图形函数让用户对图形进行细调,并且显示所建立的图形。每一个图形对象都有一个和它相关的句柄,并可用句柄来操作该对象。对象属性可以用函数get和set来修改,以便来定制用户的图形。本章讨论的函数总结在表20.11和表20.12中:表20.11句柄图形函数set(handle, ‘PropertyName’ ,Value)设置对象属性get(handle, ‘PropertyName’ )获取对象属性reset(handle)将对象属性重设为缺省值delete(handle)删除一个对象和它所有的子对象gcf获取当前图形的句柄gca获取当前坐标轴的句柄gco获取当前对象的句柄findobj( ‘PropertyName’ ,Value)获取具有指定的属性值的对象的句柄waitforbuttonpress等待键或鼠标按钮在图形中按下figure( ‘PropertyName’ ,Value)创建图形对象axes( ‘PropertyName’ ,Value)创建坐标轴对象line(X,Y, ‘PropertyName’ ,Value)创建线条对象text(X,Y,S, ‘PropertyName’ ,Value)创建文本对象patch(X,Y,C, ‘PropertyName’ ,Value)创建补片对象surface(X,Y,Z, ‘ PropertyName’ ,Value)创建曲面对象image(C, ‘PropertyName’ ,Value)创建图象对象表20.12中是本章所提到的精通MATLAB工具箱中的函数:表20.12精通MATLAB工具箱句柄图形函数mmgcf如当前的图形存在,获取它的句柄mmgca如当前的坐标轴存在,获取它的句柄mmzap(T)用鼠标删除类型T的图形对象mmpx2n(X)象素到归一化坐标的转换mm2px(X)归一化坐标到象素的转换mmline Name Value…用鼠标设置线属性mmaxes Name Value…用鼠标设置坐标轴属性mmcont2(X,Y,Z,N,C)用用户自定义颜色作二维等值线图mmcont3(X,Y,Z,N,C)用用户自定义颜色作三维等值线图mmtile以平铺形式安排图形窗口mmpager Name Value…设置打印的缺省纸张属性关键词索引chap20graphics routine图形例程handle句柄object对象property属性stacking order堆积次序pixel象素Normalized coordinates归一化坐标landscape景象(横向)portrait肖像(纵向)full page全幅documented property文件式属性undocumented property非文件式属性root根(对象)figure图形窗口(对象)axis坐标轴(对象)line线条(对象)surface曲面(对象)text文本(对象)patch补片(对象)image图象(对象)clipping限幅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据题目中给出的信息,我们可以得知要求解的是"chap1new.doc"这个文件中的计算理论导引的答案。为了回答这个问题,我们需要打开并阅读这个文件。 首先,我们应该找到这个文件并双击打开它。文件应该是以.doc的格式保存的,这意味着它是一个Microsoft Word文档。为了打开它,我们需要一个兼容的软件,例如Microsoft Word软件。 打开文件后,我们应该看到文档的内容。根据题目给出的信息,文件的主题是计算理论导引。因此,我们可以期望文档中包含有关这个主题的相关信息和解释。 在阅读文档时,我们应该注意其中可能存在的标题和段落。这些标题和段落将帮助我们理解文档的结构和内容。我们可以将目光放在关键字、关键句或特别强调的文字上,以找到与计算理论导引有关的信息。 在阅读文档时,我们还可以使用一些阅读技巧,例如快速阅读、扫视和标记关键信息。这些技巧可以帮助我们更有效地找到我们需要的答案。 最后,我们应该阅读整个文档并注意细节。根据文档的长度和内容复杂性,我们可能需要花费一些时间来理解和分析文档。 总之,根据题目给出的信息,我们可以通过打开并阅读"chap1new.doc"这个文件来寻找计算理论导引的答案。阅读过程中,我们应该注意关键信息和细节,并使用适当的阅读技巧来更好地理解文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值