还剩60页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
__tlab
6.0数学手册第7章绘图与图形处理登录http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2action=login窗体顶端搜索窗体底端czkswikihttp://czk.
8866.org/wiki/%E9%A6%96%E9%A1%B5图像的空间变换http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2action=fullsearchcontext=180value=linkto%3A%22%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2%22\o__对这个标题进行全文检索首页http://czk.
8866.org/wiki/%E9%A6%96%E9%A1%B5__http://czk.
8866.org/wiki/%E8%AE%BA%E5%9D%9BBloghttp://czk.
8866.org/drupal贡献http://czk.
8866.org/wiki/%E8%B4%A1%E7%8C%AE最新改动http://czk.
8866.org/wiki/%E6%9C%80%E6%96%B0%E6%94%B9%E5%8A%A8查找网页http://czk.
8866.org/wiki/%E6%9F%A5%E6%__%BE%E7%BD%91%E9%A1%B5帮助目录http://czk.
8866.org/wiki/%E5%B8%AE%E5%8A%A9%E7%9B%AE%E5%BD%95图像的空间变换http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2编辑http://czk.
8866.org/wiki/å¾åç空é´åæ¢action=editeditor=guipossible备注http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2\l#信息http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2action=info附件http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2action=AttachFile窗体顶端窗体底端空间几何变换将wz坐标系上的图像变换为xy坐标系上的图像,可以表示为xy=T{wz}比如xy=T{wz}=w/2z/2仿射变换仿射变换是一种常用矩阵变换,它可以表示成矩阵的形式在__tlab里面实现wz=
[341];T=[200;030;001];xy=wz*T;wz=xy*invT;为了避免归一化参数,我们可以借助__ketform函数T=[200;030;001];tform=__ketformaffineT;wz=[12;34];xy=tformfwdwztform;wz=tforminvxytform;我们可以用一个栅格图像来形象的表示这些变换的效果这些变换使用的变换矩阵分别是对图像应用空间变换有两种方法正向映射和反向映射反向映射的过程是对每一个输出像素,计算它在输入图像上的位置,根据输入图像上该位置附近的像素值决定输出像素的值在__tlab中,简单的变换可以直接用单个函数实现图像缩放使用g=imresizefscale;g=imresizef[ROWCOL];图像旋转使用g=imrotatefangle;图像剪切使用g=imcropf[XYWIDTHHEIGHT];在__tlab中使用imtransform实现图像的空间变换语法是g=imtransformftforminterp;其中,interp可以是nearest,bilinear或者bicubic比如f=chekerboard50;s=
0.8;theta=pi/6;T=[s*costhetas*sintheta0;-s*sinthetas*costheta0;001];tform=__ketformaffineT;g=imtransformftform;双线性滤波图像配准根据两幅图像,算出一个变换参数,使得一幅图像经过这样的变换后和另一图像接近图像的空间变换2008-04-2022:42:58由czkhttp://czk.
8866.org/wiki/czk\oczk@
125.
110.
0.94[
125.
110.
0.94]编辑编辑http://czk.
8866.org/wiki/å¾åç空é´åæ¢action=editeditor=guipossible备注http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2\l#信息http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2action=info附件http://czk.
8866.org/wiki/%E5%9B%BE%E5%83%8F%E7%9A%84%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2action=AttachFile窗体顶端窗体底端Moi__oinPoweredhttp://moi__o.in/\oThissiteusestheMoi__oinWikisoftware.PythonPoweredhttp://moi__o.in/Python\oMoi__oiniswritteninPython.GPLli__nsedhttp://moi__o.in/GPL\oMoi__oinisGPLli__nsed.ValidHTML
4.01http://validator.w
3.org/checkuri=referer\oClickheretovalidatethispage.czk.
8866.orghttp://czk.
8866.org/|czk.
3322.orghttp://czk.
3322.org/|Copyrightc2006czk.浙ICP备06000584号Xj__ascript:void0;Warning! YoureusingInternetExplorer6thatsabigsecurityrisk!Upgradehttp://___.microsoft.com/ie\t_blankordownloadabetterfastersaferbrowser:Firefoxhttp://___.mozilla.com/firefox/\t_blankChromehttp://___.google.com/chrome/\t_blankorSafarihttp://___.apple.com/safari/\t_blank.第7章绘图与图形处理人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接__到数据的许多内在本质,发现数据的内在____TLAB可以表达出数据的二维,三维,甚至四维的图形通过图形的线型,立面,色彩,光线,视角等属性的控制,可把数据的内在特征表现得淋漓尽致下面我们分别介绍图形的命令
7.1二维图形
7.
1.1基本平面图形命令命令1plot功能线性二维图在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(currentaxesColorOrderproperty)定义的颜色,以区别不同的线条在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axesLineStyleOrderproperty)定义的线型,以区别不同的线条用法plotXY当XY均为实数向量,且为同维向量(可以不是同型向量),X=[xi],Y=[yi],则plotXY先描出点xi,yi,然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分若X,Y均为同维同型实数矩阵,X=[Xi],Y=[Yi],其中XiYi为列向量,则plotXY依次画出plotXiYi,矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑plotY若Y为实数向量,Y的维数为m,则plotY等价于plotXY,其中x=1m;若y为实数矩阵,则把y按列的方向分解成几个列向量,而y的行数为n,则plotY等价于plotXY其中x=[1;2;…;n];在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑plotX1Y1X2Y2…,其中Xi与Yi成对出现,plotX1Y1X2Y2…将分别按顺序取两数据Xi与Yi进行画图若其中仅仅有Xi或Yi是矩阵,其余的为向量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配对的向量画出plotX1Y1LineSpec1X2Y2LineSpec2…将按顺序分别画出由三参数定义XiYiLineSpeci的线条其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色在plot命令中我们可以混合使用三参数和二参数的形式plotX1Y1LineSpec1X2Y2X3Y3LineSpec3plot…PropertyNamePropertyValue…对所有的用plot生成的line图形对象中指定的属性进行恰当的设置h=plot…返回line图形对象句柄的一列向量,一线条对应一句柄值说明参数LineSpec功能定义线的属性__ltab允许用户对线条定义如下的特性1.线型表7-1定义符----.线型实线(缺省值)划线点线点划线2.线条宽度指定线条的宽度,取值为整数(单位为像素点)3.颜色表7-2定义符R(red)Ggreenbblueccyan颜色红色绿色兰色青色定义符M__gentayyellowkblackwwhite颜色品红黄色黑色白色4.标记类型表7-3定义符+o字母*.x标记类型加号小圆圈星号实点交叉号定义符d^v标记类型棱形向上三角形向下三角形向右三角形向左三角形定义符shP标记类型正方形正六角星正五角星5.标记大小指定标记符号的大小尺寸,取值为整数(单位为像素)6.标记面填充颜色指定用于填充标记符面的颜色取值在上表7.标记周边颜色指定标记符颜色或者是标记符(小圆圈、正方形、棱形、正五角星、正六角星和四个方向的三角形)周边线条的颜色取值在上表在所有的能产生线条的命令中,参数LineSepc可以定义线条的下面三个属性线型、标记符号、颜色进行设置对线条的上述属性的定义可用字符串来定义,如plotxy-.or结合x和y,画出点划线(-.),在数据点(x,y)处画出小圆圈(o),线和标记都用红色画出其中定义符(即字符串)中的字母、符号可任意组合若没有定义符,则画图命令plot自动用缺省值进行画图若仅仅指定了标记符,而非线型,则plot只在数据点画出标记符如plotxy’d’例7-1t=0:pi/20:2*pi;plottt.*cost-.r*holdonplotexpt/
100.*sint-pi/2--moplotsint-pi:bsholdoff图形结果为图7-1例7-2plottsin2*t-moLineWidth2__rkerEdgeColork…__rke_____Color[.
491.63]__rkerSize12图形结果为图7-2图7-1二维曲线图图7-2二维图形的绘制命令2fplot功能在指定的范围limits内画出一元函数y=f(x)的图形其中向量x的分量分布在指定的范围内,y是与x同型的向量,对应的分量有函数关系yi=fxi若对应于x的值,y返回多个值,则y是一个矩阵,其中每列对应一个f(x)例如,f(x)返回向量[f1xf2xf3x],输入参量x=[x1;x2;x3],则函数f(x)返回矩阵f1x1f2x1f3x1f1x2f2x2f3x2f1x3f2x3f3x3注意一点的是,函数function必须是一个m-文件函数或者是一个包含变量x,且能用函数eval计算的字符串例如’sinx*exp2*x’,’[sinxcosx]’,’humpx’用法fplotfunctionlimits在指定的范围limits内画出函数名为function的一元函数图形其中limits是一个指定x-轴范围的向量[xminx__x]或者是x轴和y轴的范围的向量[xminx__xyminy__x]fplotfunctionlimitsLineSpec用指定的线型LineSpec画出函数functionfplotfunctionlimitstol用相对误差值为tol画出函数function相对误差的缺省值为2e-3fplotfunctionlimitstolLineSpec用指定的相对误差值tol和指定的线型LineSpec画出函数function的图形fplotfunctionlimitsn当n=1,则至少画出n+1个点(即至少把范围limits分成n个小区间),最大步长不超过x__x-xmin/nfplot‘function’lims…允许可选参数tol,n和LineSpec以任意组合方式输入[XY]=fplotfunctionlimits…返回横坐标与纵坐标的值给变量X和Y,此时fplot不画出图形若想画出,可用命令plotXY[…]=plotfunctionlimitstolnLineSpecP1P2…允许用户直接给函数function输入参数P1,P2等,其中函数functiond的定义形式为y=functionxP1P2…若想用缺省的tol,n或LineSpec值,只需将空矩阵([])传递给函数即可注意fplot采用自适应步长控制来画出函数function的示意图,在函数的变化激烈的区间,采用小的步长,否则采用大的步长总之,使计算量与时间最小,图形尽可能精确例7-3fplottanh[-22]图形结果为图7-3subplot221;fplothumps
[01]subplot222;fplotabsexp-j*x*0:9*ones101[02*pi]subplot212;fplot[tanxsinxcosx]2*pi*[-11-11]图7-3函数画图图7-4命令3loglog功能双对数图形用法loglogY若y为实数向量或矩阵,则结合y列向量的下标与y的列向量画出若y为复数向量或矩阵,则loglogY等价于loglogrealYi__gY,在loglog的其他使用形式中将忽略Y的虚数部分loglogX1Y1X2Y2…结合Xn与Yn画出图形若只有Xn或Yn为矩阵,另一个为向量,行向量维数等于矩阵的列数,列向量的维数等于矩阵的行数,则loglog把矩阵按向量的方向分解成向量,再与向量结合分别画出图形loglogX1Y1LineSpec1X2Y2LineSpeec2…按顺序取三个参数XnYnLineSpecn画出线条,其中LineSpecn指定线条的线型,标记符号和颜色用户可以混合使用二参数和三参数形式,如loglogX1Y1X2Y2LineSpec2X3Y3loglog…PropertyNamePropertyValue…对所有由loglog命令生成的图形对象句柄的属性进行设置h=loglog…返回line图形句柄向量,每条线对应一个句柄例7-4x=logspa__-12;loglogx10*expx-sgridon图7-5命令4semilogx功能x轴对数图形若没有指定使用的颜色,当所画线条较多时,semilogx将自动使用由当前轴的ColorOrder和LineStyleOrder属性指定的颜色顺序和线型顺序来画线用法semilogxY%对x轴的刻度求常用对数(以10为底),而y轴为线性刻度若y为实数向量或矩阵,则结合y列向量的下标与y的列向量画出线条;若y为复数向量或矩阵,则semilogxY等价于semilogxrealYi__gY在semilogx的其他使用形式中,Y的虚数部分将被忽略semilogxX1Y1X2Y2…%结合Xn和Yn画出线条,若其中只有xn或yn为矩阵,另外一个为向量,行向量的维数等于矩阵的列数,列向量的维数等于矩阵的行数,则按向量的方向分解矩阵,再与向量结合,分别画出线条semilogxX1Y1LineSpec1X2Y2LineSpec2…%按顺序取三参数XnYnLineSpecn画线,参数LineSpecn指定使用的线型,标记符号和颜色用户可以混合使用二参数和三参数形式,如semilogxX1Y1X2Y2LineSpec2X3Y3semilogx…PropertyNamePropertyValue…%对所有由semilogx命令生成的图形对象句柄的属性进行设置h=semilogx…%返回line图形句柄向量,每条线对应一个句柄例7-5x=0:.1:10;semilogxxcos
10.^x图形结果为图7-6命令5semilogy用法参见semilogx命令命令6fill功能用颜色填充二维多边形用法fillXYC用x和y中的数据生成多边形,用c指定的颜色填充它其中c为色图向量或矩阵若c是行向量,则要求c的维数等于x和y的列数,若c为列向量,则要求c的维数等于x和y的行数fillXYColorSpec用ColorSpec指定的颜色填充由x和y定义的多边形fillX1Y1C1X2Y2C2…指定多个要填充的二维区域fill…PropertyNamePropertyValue允许用户对一个patch图形对象的某个属性设定属性值h=fill…返回patch图形对象句柄的向量,每一个patch对象对应一个句柄注意
1.若x或y是一矩阵,另一个是向量,向量应是维数与矩阵的行数相等的列向量或是维数等于矩阵列数的行向量时,函数fill将向量__成与矩阵同型的矩阵函数fill将矩阵x与y中列向量中的数据生成多边形的顶点
2.颜色阴影类型决定于用户在参数中列出的颜色,若用户用ColorSpec指定颜色,命令fill生成平坦阴影模式(flat-shaded)多边形,同时设置补片对象(patch)的Fa__Color属性为相应的RGB颜色矩阵
3.若用户用参量c指定所用颜色,命令fill按坐标轴属性Clim的比例缩小c中的元素,之后,c成为引用当前色图的下标矩阵
4.若c为行向量,命令fill生成平面阴影的多边形,c的每一元素决定由矩阵x,y的每一列定义的多边形内的颜色,每一补片对象的Fa__Color属性被设置为flat,x,y的每一行元素变成第n块补片对象的Cdata属性值,其中n为矩阵x或y中的相应的列
5.若c为一列向量或一矩阵,命令fill运用一线性插值法计算每一节点的颜色,以便用插值颜色填充多边形的内部它设置补片对象的Fa__Color属性为‘interp’,且在一列中的元素变成每一补片的Cdata属性值若c为一列向量,命令fill用该向量__成需要大小的尺寸例7-6t=1/16:1/8:1*2*pi;x=expt.*sint;y=t.*cost;fillxykgridon图形结果为图7-7命令7zoom功能对二维图形进行放大或缩小放大或缩小会改变坐标轴范围用法zoomon打开交互式的放大功能当一个图形处于交互式的放大状态时,有两种方法来放大图形对于一键鼠标或二键,三键鼠标,单击坐标轴内的任意一点,可使图形放大一倍,这一操作可进行多次,直到__tlab的最大显示为止;对于二键或三键的鼠标,在坐标轴内单击右键,可使图形缩小一倍,这一操作可进行多次,直到还原图形为止对于一键鼠标,要想缩小图形,需要按住键盘上的Shift键,再单击鼠标键用鼠标拖出要放大的部分,系统将放大选定的区域zoomoff关闭交互式放大功能zoomout将系统转回非放大状态,并将图形恢复原状zoomreset系统将记住当前图形的放大状态,作为放大状态的设置值以后使用zoomout或者是双击鼠标时,交互式放大状态打开,且图形并不是返回到原状,而是返回reset时的放大状态zoom用于切换放大的状态on和offzoomxon只对x轴进行放大zoomyon只对y轴进行放大zoomfactor用放大系数factor进行放大或缩小,而不影响交互式放大的状态若factor1,系统将图形放大factor倍,若0factor≤1,系统将图形放大1/factor倍zoomfigoption指定对窗口fig中(不一定为当前窗口)的二维图形进行放大,其中参数option为on、off、xon、yon、reset、factor等命令8meshgrid功能生成二元函数z=fxy中x-y平面上的矩形定义域中数据点矩阵X和Y,或者是三元函数u=fxyz中立方体定义域中的数据点矩阵XY和Z用法a[XY]=meshgridxyb[XY]=meshgridxc[XYZ]=meshgridxyz说明对于形式a,输入向量x为x-y平面上矩形定义域的矩形分割线在x轴的值,向量y为x-y平面上矩形定义域的矩形分割线在y轴的值输出向量X为x-y平面上矩形定义域的矩形分割点的横坐标值矩阵,输出向量Y为x-y平面上矩形定义域的矩形分割点的纵坐标值矩阵对于形式b,等价于形式a[XY]=meshgridx=meshgridxx对于形式c,输入向量x为立方体定义域的立方体分割平面在x轴上的值,输入向量y为立方体定义域的立方体分割平面在y轴上的值,输入向量z为立方体定义域的立方体分割平面在z轴上的值输出向量X为立方体定义域中分割点的x轴坐标值Y为立方体定义域中分割点的y轴坐标值Z为立方体定义域中分割点的z轴坐标值例7-7x=[
0.
71.1];y=[-231];z=
[253];%分量不一定从小到大[X_2dY_2d]=meshgridxy[X_3dY_3dZ_3d]=meshgridxyz计算结果为X_2d=
0.
70001.
10000.
70001.
10000.
70001.1000Y_2d=-2-23311X_3d::1=
0.
70001.
10000.
70001.
10000.
70001.1000X_3d::2=
0.
70001.
10000.
70001.
10000.
70001.1000X_3d::3=
0.
70001.
10000.
70001.
10000.
70001.1000Y_3d::1=-2-23311Y_3d::2=-2-23311Y_3d::3=-2-23311Z_3d::1=222222Z_3d::2=555555Z_3d::3=
3333337.
1.2特殊平面图形命令命令1polar功能画极坐标图该命令接受极坐标形式的函数rho=fθ,在笛卡儿坐标系平面上画出该函数,且在平面上画出极坐标形式的格栅用法polarthetarho用极角theta和极径rho画出极坐标图形极角theta为从x轴到半径的单位为弧度的向量,极径rho为各数据点到极点的半径向量polarthetarhoLineSpec参量LineSpec指定极坐标图中线条的线型、标记符号和颜色等例7-8t=0:.01:2*pi;polartsin3*t.*cos2*t--r图形结果为图7-8命令2bar功能二维垂直条形图用垂直条形显示向量或矩阵中的值用法barY若y为向量,则分别显示每个分量的高度,横坐标为1到length(y);若y为矩阵,则bar把y分解成行向量,再分别画出,横坐标为1到size(y,1),即矩阵的行数barxY在指定的横坐标x上画出y,其中x为严格单增的向量若y为矩阵,则bar把矩阵分解成几个行向量,在指定的横坐标处分别画出bar…width设置条形的相对宽度和控制在一组内条形的间距缺省值为
0.8,所以,如果用户没有指定x,则同一组内的条形有很小的间距,若设置width为1,则同一组内的条形相互接触bar…style指定条形的排列类型类型有“group”和“stack”,其中“group”为缺省的显示模式“group”若y为n*m阶的矩阵,则bar显示n组,每组有m个垂直条形的条形图“stack”对矩阵y的每一个行向量显示在一个条形中,条形的高度为该行向量中的分量和其中同一条形中的每个分量用不同的颜色显示出来,从而可以显示每个分量在向量中的分布bar…LineSpec用指定的颜色LineSpec显示所有的条形[xbyb]=bar…返回用户可用命令plot或命令patch画出条形图的参量xb,yb这对用户控制一个图形的显示是有用的,例如要在一个plot语句中加入装饰性的条形图等h=bar…返回一个patch图形对象句柄的向量每一条形对应一个句柄例7-9x=-
2.9:
0.2:
2.9;barxexpx.*sinxcolor__pgray图形结果为图7-9例7-10subplot224barY
1.5titleWidth=
1.5图形结果为图7-10命令3barh功能二维水平条形图用水平条形显示向量或矩阵中的值用法barhY若y为向量,则分别显示每个分量的高度,纵坐标为1到lengthy;若y为矩阵,则bar把y分解成行向量,再分别画出,纵坐标为1到sizey1,即矩阵的行数barhxY在指定的纵坐标x上以水平方向画出y,其中x为严格单增的向量若y为矩阵,则barh把矩阵分解成几个行向量,在指定的纵坐标处分别画出barh…width设置条形的相对宽度和控制在一组内条形的间距缺省值为
0.8,所以,如果用户没有指定x,则同一组内的条形有很小的间距,若设置width为1,则同一组内的条形相互接触barh…style指定条形的排列类型类型有“group”和“stack”,其中“group”为缺省的显示模式“group”若y为n*m阶的矩阵,则bar显示n组,每组有m个水平条形的条形图“stack”对矩阵y的每一个行向量显示在一个条形中,条形的高度为该行向量中的分量和其中同一条形中的每个分量用不同的颜色显示出来,从而可以显示每个分量在向量中的分布barh…LineSpec用指定的颜色LineSpec显示所有的条形[xbyb]=barh…返回用户可用命令plot或命令patch画出条形图的参量xb,yb这给用户控制一个图形的显示是有用的,例如要在一个plot语句中加入装饰性的条形图等h=barh…返回一个patch图形对象句柄的向量每一条形对应一个句柄例7-11X=1:.5:5;Y=expX.*sinX;barhYstack图形结果为图7-11命令4compass功能从原点画箭头图箭头图为一显示起点为笛卡儿坐标系中的原点的二维或三维方向或向量的图形,同时在坐标系中显示圆形的分隔线用法compassXY参量x与y为同型的n维向量,则命令显示n个箭头,箭头的起点为原点,箭头的位置为[XiYi]compassZ参量z为n维复数向量,则命令显示n个箭头,箭头起点为原点,箭头的位置为[realZi__gZ].compass…LineSpec用参量LineSpec指定箭头图的线型、标记符号、颜色等属性h=compass…返回line对象的句柄给h例7-12Z=__gic
20.*randn20;compassZ图形结果为图7-12命令5comet功能二维彗星图彗星图为彗星头(一个小圆圈)沿着数据点前进的动画,彗星体为跟在彗星头后面的痕迹,轨道为沿着整个函数的实线我们要指出的是,由命令comet生成的轨迹是使用擦除模式(EraseMode)属性的值为none,该属性使用户不能打印该图形(只能得到彗星头),且当用户改变窗口的大小时,动画将消失用法comety彗星图动画显示向量y确定的路线cometxy彗星图动画显示向量x与y确定的路线cometxyp指定彗星体的长度p*lengthy,缺省的p值为
0.1例7-13t=0:.01:2*pi;x=expsin2*t.*cost.^2/3;y=t.*sint.^2;cometxy;图形结果为图7-13附擦除模式EraseMode属性及属性值{nor__l}|none|xor|background该属性控制系统用于显示与擦除线条对象的技术不同的擦除模式对于生成动画系列,即控制个别对象的重新显示方式,对于改进外在显示和获得理想的效果是很必要的表7-4属性值含义Nor__l缺省值重新显示受影响的区域,在必要的时候,进行三维分析计算,以保证所有的对象的显示都是正确的该模式下的图形显示是最精确的,不过也是最缓慢的,以下其他三种模式显示速度较快,不过没有执行一个完全的重显过程,因而,图形显示也不是很精确的none当线条__或改动时,该模式没有擦除线条,而是仍然显示于屏幕上该模式下不能打印图形,因为系统没有存储前一图形的任何信息xor使用异或运算xor计算线条颜色与当前位置下的颜色,用所得结果显示与擦除线条该模式对于线条下面对象的颜色没有任何破坏,只是影响到线条的当前显示颜色而已Background用当前坐标轴颜色重新显示线条的方式来擦除线条,若当前坐标轴颜色设置为none,则用图形的背景色来代替坐标轴颜色该模式对于处于擦除线条后面的对象来说是有损害的,不过当前线条的颜色总是最合适的命令6errorbar功能沿着一曲线画误差棒形图误差棒为数据的置信水平或者为沿着曲线的偏差在下列参数中,若为矩阵,则按列画出误差棒用法errorbarYE画出向量y,同时显示在向量y的每一元素之上的误差棒误差棒为Ei在曲线y上面与下面的距离,所以误差棒的长度为2*EierrorbarXYEXYE必须为同型参量若同为向量,则画出带长度为2*Ei、对称误差棒于曲线点XiYi之处;若同为矩阵,则画出带长度为Ei,j、对称误差棒于曲面点XijYij之处,errorbarXYLUX,Y,L,U必须为同型参量若同为向量,则在点XiYi处画出向下长为Li,向上长为Ui的误差棒;若同为矩阵,则在点XijYi.j处画出向下长为Lij向上长为Uij的误差棒errorbar…LineSpec用LineSpec指定的线型、标记符、颜色等画出误差棒h=errorbar…返回线图形对象的句柄向量给h例7-14X=0:pi/10:pi;Y=expX.*sinX;E=stdY*onessizeX;errorbarXYE图形结果为图7-14命令7feather功能画出速度向量图一羽毛图在横坐标上等距地显示向量用户要表示各个向量的、相对于原点的向量分量用法featherUV显示由参量向量u与v确定的向量,其中u包含作为相对坐标系中的x成分,v包含作为相对坐标系中的y成分featherZ显示复数参量向量z确定的向量,等价于featherrealZi__gZfeather…LineSpec用参量LineSpec指定的线型、标记符号、颜色等属性画出羽毛图例7-15th=-90:10:90*pi/180;r=4*onessizeth;[uv]=pol2cartthr;featheruv;图形结果为图7-15命令8hist功能二维条形直方图,可以显示出数据的分配情形所有向量y中的元素或者是矩阵y中的列向量中的元素是根据它们的数值范围来分组的,每一组作为一个条形进行显示条形直方图中的x轴反映了数据y中元素数值的范围,直方图的y轴显示出参量y中的元素落入该组的数目所以y轴的范围从0到任一条形中包含元素最多的数字直方图为一patch图形对象,若想改变图形的颜色,可以对patch对象的属性进行设置缺省时,图形颜色是由当前色图进行控制,当前色图的第一个颜色为直方图的颜色用法n=histY把向量y中的元素放入等距的10个条形中,且返回每一个条形中的元素个数若y为矩阵,则该命令按列对y进行处理n=histYx参量x为向量,把y中元素放到m(m=lengthx)个由x中元素指定的位置为中心的条形中n=histYnbins参量nbins为标量,用于指定条形的数目[nxout]=hist…返回向量n与包含频率计数与条形的位置向量xout,用户可以用命令barxoutn画出条形直方图例7-16x=-5:
0.1:5;y=randn10001;histyx图形结果为图7-16命令9histc功能直方图记数用法n=histcxedges统计向量x中、落入向量edges(元素必须为单调的非减的)各个元素之间的元素个数输出参量n为一与向量edges同维的向量其中若有edgesk=xi=edgesk+1,则nk增加1X中超出向量edges规定的范围的元素将不被统计参量edges中可使用-inf与inf,用于包括向量x中非NaN的元素若x为一矩阵,则对x的每一列进行上述操作n=histcxedgesdim对__矩阵的第dim维进行统计[nbin]=histc…n结果同上,同时返回矩阵下标bin若x为向量,nk=sumbin==k对于超出范围的数值,bin为零值命令10rose功能画角度直方图该直方图是一个显示所给数据的变化范围内数据的分布情形的极坐标图,所给数据分成不同的组每一组作为一小扇形进行显示用法rosetheta画一角度直方图,显示参数theta的数据在20个区间或更少的区间内的分布向量theta中的角度单位为弧度,用于确定每一区间与原点的角度每一区间的长度反映出输入参量的元素落入一区间的个数rosethetax用参量x指定每一区间内的元素与区间的位置,lengthx等于每一区间内元素的个数与每一区间位置角度的中间角度例如,若x为一5维向量,rose命令分配参量theta中的元素为5部分,每一部分的角度中线由x指定rosethetanbins于区间[02*pi]内画出nbins个等距的小扇形缺省值为20[toutrout]=rose…返回向量tout与rout,可以用polartoutrout画出图形该命令没有画任何的图形例7-17theta=3*pi*randn130;rosetheta图形结果为图7-17命令11stairs功能画二维阶梯图,这种图对与时间有关的数字样本系统的作图很有用处用法stairsY用参量y的元素画一阶梯图若y为向量,则横坐标x的范围从1到m=lengthy,若y为矩阵,则对y的每一行画一阶梯图,其中x的范围从1到y的列数mstairsXY结合x与y画阶梯图其中要求x与y为同型的向量或矩阵此外,x可以为行向量或为列向量,且y为有m=length(x)行的矩阵stairs…LineSpec用参数LineSpec指定的线型、标记符号和颜色画阶梯图[xbyb]=stairsY该命令没有画图,而是返回可以用命令plot画出参量y的阶梯图的向量xb与yb[xbyb]=stairsXY该命令没有画图,而是返回可以用命令plot画出参量x,y的阶梯图的向量xb与yb例7-18x=0:.25:10;stairsxexpsinx.^2图形结果为图7-18命令12stem功能画二维离散数据的柄形图该图用线条显示数据点与x轴的距离,一小圆圈(缺省标记)或用指定的其他标记符号与线条相连,在y轴上标记数据点的值用法stemY按y元素的顺序画出柄形图,在x轴上,柄与柄之间的距离相等;若y为矩阵,则把y分成几个行向量,在同一横坐标的位置上画出一个行向量的柄图stemXY在横坐标x上画出列向量y的柄形图其中x与y为同型的向量或矩阵,此外,x可以为行向量或列向量,而y为有m=length(x)行的矩阵stem…fill指定是否对柄形图末端的小圆圈填充颜色stem…LineSpec用参数LineSpec指定线型,标记符号和柄图末端的小圆圈的颜色画柄图h=stem…返回柄形图的line图形对象句柄向量例7-19x=linspa__0210;stemexp-x.^2fill-.图形结果为图7-19命令13stem3功能画三维离散数据的柄形图该图用一线段显示数据离开xy平面的高度,在线段的末端用一小圆圈(缺省记号)或其他的标记符号表示数据的高度格式stem3Z用柄形图显示z中数据与xy平面的高度若z为一行向量,则x与y将自动生成,stem3将在与x轴平行的方向上等距的位置上画出z的元素;若y为列向量,stem3将在与y轴平行的方向上等距的位置上画出z的元素stem3XYZ在参数x与y指定的位置上画出z的元素,其中x,y,z必须为同型的向量或矩阵stem3…fill指定是否要填充柄形图末端小圆圈stem3…LineSpec指定线型,标记符号和末端小圆圈的颜色h=stem3…返回柄形图的line图形对象句柄例7-20[XYZ]=peaks20;stem3XYZ’r*图形结果为图7-20命令14pie功能饼形图格式pieX用x中的数据画一饼形图,x中的每一元素代表饼形图中的一部分X中元素Xi所代表的扇形大小通过Xi/sumX的大小来决定若有sumX=1,则x中元素就直接指定了所在部分的大小;若sumX1,则画出一不完整的饼形图pieXexplode从饼形图中分离出一部分,explode为元素为零或非零的、与x相对应的向量或矩阵与explode的非零值对应的部分将从饼形图中心分离出来explode必须与x同型h=pie…返回一patch与text的图形对象句柄向量h例7-21x=[
130.
52.52];explode=
[01000];piexexplode图形结果为图7-
217.
1.3二维图形注释命令命令1grid功能给二维或三维图形的坐标面增加分隔线该命令会对当前坐标轴的Xgrid,Ygrid,Zgrid的属性有影响用法gridon给当前的坐标轴增加分隔线gridoff从当前的坐标轴中去掉分隔线grid转换分隔线的显示与否的状态gridaxes_handleon|off对指定的坐标轴axes_handle是否显示分隔线命令2gtext功能在当前二维图形中用鼠标放置文字当光标进入图形窗口时,会变成一个大十字,表明系统正等待用户的动作用法gtextstring当光标位于一个图形窗口内时,等待用户单击鼠标或键盘若按下鼠标或键盘,则在光标的位置放置给定的文字“string”h=gtextstring当用户在鼠标指定的位置放置文字“string”后,返回一个text图形对象句柄给h命令3legend功能在图形上添加图例该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等当所画的是区域(patch或su_____对象)时,图例会在文字旁显示表面颜色__tlab在一个坐标轴中仅仅显示一个图例图例的位置有几个因素决定,像遮挡的对象等,用户可以用鼠标拖动图例到恰当的位置,双击标签可以进入标签编辑状态用法legendstring1string2…用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例legendhstring1string2…用指定的文字string在一个包含于句柄向量h中的图形显示图例用给定的数据对相应的图形对象加上图例legendstring___trix用字符矩阵参量string___trix的每一行字符串作为标签legendhstring___trix用字符矩阵参量string___trix的每一行字符串作为标签给包含于句柄向量h中的相应的图形对象加标签legendaxes_handle…给由句柄axes_handle指定的坐标轴显示图例legendoff从当前的坐标轴,或是由axes-handle指定的坐标轴中除掉图例legendaxes_handleoff从由axes_handle指定的坐标轴中除掉图例legend_handle=legend返回当前坐标轴中的图例句柄,若坐标轴中没有图例存在,则返回空向量legend对当前图形中所有的图例进行刷新legendlegend_handle对由句柄legend_handle指定的图例进行刷新legend…pos在指定的位置pos放置图例见表7-5表7-5Pos取值pos=-1pos=0Pos=1图例位置坐标轴之外的右边坐标轴之内,有可能遮挡部分图形坐标轴的右上角(缺省位置)Pos取值pos=2pos=3pos=4图例位置坐标轴的左上角在坐标轴的左下角坐标轴的右下角h=legend…返回图例的句柄向量[legend_handleo__ect_handles]=legend…返回图例句柄,该句柄为坐标轴定义于图例中的图形对象、line对象、text对象的句柄这些句柄允许用户对每个对象进行详细的操作例7-22x=-pi:pi/20:pi;plotxcosx.^2rdxasinx-.bh=legendcos2xasin2;图形结果为图7-22命令4title功能给当前轴加上标题每个axes图形对象可以有一个标题标题定位于axes的上方正__用法titlestring在当前坐标轴上方正__放置字符串string作为标题titlefname先执行能返回字符串的函数fname,然后在当前轴上方正__放置返回的字符串作为标题title…PropertyNamePropertyValue…对由命令title生成的text图形对象的属性进行设置h=title…返回作为标题的text对象句柄命令5text功能在当前轴中创建text对象函数text是创建text图形句柄的低级函数可用该函数在图形中指定的位置上显示字符串用法textxystring在图形中指定的位置xy上显示字符串stringtextxyzstring在三维图形空间中的指定位置xyz上显示字符串stringtextxyz’string’.PropertyNamePropertyValue…对引号中的文字string定位于用坐标轴指定的位置,且对指定的属性进行设置表7-6给出文字属性名、含义及属性值表7-6属性名属性说明属性值定义字符串Editing能否对文字进行编辑有效值on、off缺省值offInterpretationTeX字符是否可用有效值tex、none缺省值texString字符串包括TeX字符串有效值可见字符串放置字符串Extenttext对象的范围(位置与大小)有效值[leftbottomwidthheight]HorizontalAlig__ent文字水平方向的对齐方式有效值left文本外框左边对齐,缺省对齐方式、__nter文本外框中间对齐、right文本外框右边对齐缺省值leftPosition文字范围的位置有效值[xyz]直角坐标系缺省值[](空矩阵)Rotation文字对象的方位角度有效值标量(单位为度)缺省值0Units文字范围与位置的单位有效值pixels屏幕上的像素点、nor__lized把屏幕看成一个长、宽为1的矩形、inches英寸、__ntimeters厘米、points图象点、data缺省值dataVerticalAlig__ent文字垂直方向的对齐方式有效值top文本外框顶上对齐、cap文本字符顶上对齐、middle文本外框中间对齐、baseline文本字符底线齐、bottom文本外框底线对齐缺省值middle指定文字字体FontAngle设置斜体文字模式有效值nor__l正常字体、italic斜体字、oblique斜角字缺省值nor__lFontName设置文字字体名称有效值用户系统支持的字体名或者字符串FixedWidth缺省值为HelveticaFontSize文字字体大小有效值结合字体单位的数值缺省值为10pointsFontUnits设置属性FontSize的单位有效值points1点=1/72英寸、nor__lized把父对象坐标轴作为一单位长的一个整体;当改变坐标轴的尺寸时,系统会自动改变字体的大小、inches英寸、__ntimeters厘米、Pixels像素缺省值pointsFontWeight设置文字字体的粗细有效值light细字体、nor__l正常字体、demi黑体字、Bold黑体字缺省值nor__l控制文字外观Clipping设置坐标轴中矩形的剪辑模式有效值on、offon当文本超出坐标轴的矩形时,超出的部分不显示;off当文本超出坐标轴的矩形时,超出的部分显示缺省值offEraseMode设置显示与擦除文字的模式这些模式对生成动画系列与改进文字的显示效果很有好处有效值nor__l、none、xor、background缺省值nor__lSelectionHighlight设置选中文字是否突出显示有效值on、off缺省值onVisible设置文字是否可见有效值on、off缺省值onColor设置文字颜色有效的颜色值ColorSpec控制对文字对象的访问HandleVisibility设置文字对象句柄对其他函数是否可见有效值on、callback、off缺省值onHitTest设置文字对象能否成为当前对象(见图形CurrentO__ect属性)有效值on、off缺省值on文字对象的一般信息Children文字对象的子对象(文字对象没有子对象)有效值[](即空矩阵)Parent文字对象的父对象(通常为axes对象)有效值axes的句柄Seleted设置文字是否显示出“选中”状态有效值on、off缺省值offTag设置用户指定的标签有效值任何字符串缺省值’’(即空字符串)Type设置图形对象的类型(只读类型)有效值字符串’text’UserData设置用户指定数据有效值任何矩阵缺省值[](即空矩阵)控制回调例行执行程序BusyAction设置如何处理对文字回调过程中断的句柄有效值can__l、queue缺省值queueButtonDownFcn设置当鼠标在文字上单击时,程序做出的反应(即执行回调程序)有效值字符串缺省值(空字符串)CreateFcn设置当文字被创建时,程序做出的反应(即执行的回调程序)有效值字符串缺省值(空字符串)DeleteFcn设置当文字被删除(通过关闭或删除操作)时,程序做出的反应(即执行的回调程序)有效值字符串缺省值(空字符串)Interruptible设置回调过程是否可中断有效值on、off缺省值on(能中断)UIContextMenu设置与文字相关的菜单项有效值用户相关菜单句柄h=text…返回文字对象句柄的列向量,每一对象对应一句柄该命令的其他使用形式中,将随意地返回这个输出参量例7-23plot0:pi/20:2*pisin0:pi/20:2*pitextpi0’ZerosPoint’gridon图形结果为图7-23命令6xlabel、ylabel功能给x、y轴贴上标签用法xlabelstring、ylabel‘string’给当前轴对象中的x、y轴贴标签;注意若再次执行xlabel或ylabel命令,则新的标签会覆盖旧的标签xlabelfname、ylabelfname先执行函数fname,其返回一个字符串,然后在x、y轴旁边显示出来;xlabel…PropertyNamePropertyValue…、ylabel…’PropertyName’PropertyValue指定轴对象中的要控制的属性名和要改变的属性值,这些都是由xlabel或ylabel创建的text图形对象的成对值;h=xlabel…、h=ylabel…返回作为标签的text对象的句柄
7.2三维图形
7.
2.1三维曲线、面填色命令命令1comet3功能三维空间中的彗星图彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,彗星轨道为整个函数所画的实曲线注意一点的是,该彗星轨迹的显示模式EraseMode为none,所以用户不能打印出彗星轨迹(只能得到一个小圆圈),且若用户调整窗口大小,则彗星会消失用法comet3z用向量z中的数据显示一个三维彗星comet3xyz显示一个彗星通过数据x,y,z确定的三维曲线comet3xyzp指定彗星体的长度为p*length(y)例7-24t=-20*pi:pi/50:20*pi;comet3cos2*t.^
2.*sintsin2*t.^
2.*costt;图形的结果为图7-24命令2fill3功能用指定的颜色填充三维多边形阴影类型为平面型和Gouraud型用法fill3XYZC填充由参数x,y和z确定多边形若x,y或z为矩阵,fill3生成n个多边形,其中n为矩阵的列数在必要的时候,fill3会自动连接最后一个节点和第一个节点以便能形成封闭的多边形参数c指定颜色,这儿c为引用当前色图的下标向量或矩阵若c为行向量,则c的维数必须等于x的列数和y的列数,若c为列向量,则c的维数必须等于矩阵x的行数和y的行数fill3XYZColorSpec用指定的颜色ColorSpec填充由x,y和z确定的多边形fill3X1Y1Z1C1X2Y2Z2C2…对多边形的不同区域用不同的颜色进行填充fill3…PropertyNamePropertyValue允许用户对特定的patch属性进行设置h=fill3…返回patch图形对象的句柄向量,每一块(patch)对应一个句柄运算规则1.若X,Y,Z为同型的矩阵,fill3生成X,Y,Z中相同位置的元素确定的顶点,每一列生成一个多边形2.若只有X,Y或Z为矩阵,则fill3由列向量参数生成可用的同型矩阵3.若用户对填充的颜色指定为ColorSpec,则fill3生成阴影类型为flat-shaded的多边形,且设置块(patch)的属性Fa__Color为RGB颜色形式的矩阵4.若用户用矩阵C指定颜色,命令fill3通过坐标轴属性Clim来调整C中的元素,在引用当前色图之前,用于指定颜色坐标轴的参数比例5.若参数C为一行向量,命令fill3生成带平面阴影(flat-shaded)的多边形,同时设置补片对象的面颜色(Fa__Color)属性为flat向量c中的每一元素成为每一补片对象的颜色数据(CData)属性的值6.若参数C为一矩阵,命令fill3生成带内插颜色的多边形,同时设置多边形补片对象的Fa__Color属性为interp命令fill3采用对多边形顶点色图的下标指定的颜色采用线性内插算法,同时多边形的颜色采用对顶点颜色用内插算法得到的颜色矩阵C的每一列元素变成对应补片对象的Cdata属性值7.若参数C为一列向量,命令fill3先__C的元素,使之成为所需维数的矩阵,再按上面的方法6进行计算例7-25X=10*rand4;Y=10*rand4;Z=10*rand4;C=rand4;fill3XYZC图形结果可能为图7-
257.
2.2三维图形等高线命令1contour功能曲面的等高线图用法contourz把矩阵z中的值作为一个二维函数的值,等高曲线是一个平面的曲线,平面的高度v是__tlab自动取的;contourxyzxy是平面z=0上点的坐标矩阵,z为相应点的高度值矩阵效果同上;contourzn画出n条等高线;contourxyzn画出n条等高线;contourzv在指定的高度v上画出等高线;contourxyzv同上;[ch]=contour…返回如同contourc命令描述的等高矩阵c和线句柄或块句柄列向量h,这些可作为clabel命令的输入参量,每条线对应一个句柄,句柄中的userdata属性包含每条等高线的高度值;contour…’linespec’因为等高线是以当前的色图中的颜色画的,且是作为块对象处理的,即等高线是一般的线条,我们可象画普通线条一样,可以指定等高线的颜色或者线形例7-26contourpeaks40图形结果为图7-26命令2clabel功能在二维等高线图中添加高度标签在下列形式中,若有h出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号用法clabelCh把标签旋转到恰当的角度,再插入到等高线中只有等高线之间有足够的空间时才加入,当然这决定于等高线的尺度clabelChv在指定的高度v上显示标签h,当然要对标签做恰当的处理clabelCh__nual手动设置标签用户用鼠标左键或空格键在最接近指定的位置上放置标签,用键盘上的回车键结束该操作当然会对标签做恰当的处理clabelC在从命令contour生成的等高线结构c的位置上添加标签此时标签的放置的位置是随机的clabelCv在给定的位置v上显示标签clabelC__nual允许用户通过鼠标来给等高线贴标签例7-27[xy]=meshgrid-2:.2:2;z=x.*y.*exp-x.^2-y.^2;[Ch]=contourxyz;clabelCh;图形结果为图7-27命令3contourc功能低级等高线图形计算命令该命令计算等高线矩阵c,该矩阵可用于命令contour,contour3和contourf等矩阵z中的数值确定平面上的等高线高度值,等高线的计算结果用由矩阵z维数决定的间隔的宽度用法C=contourcZ从矩阵z中计算等高矩阵,其中z的维数至少为2*2阶,等高线为矩阵z中数值相等的单元等高线的数目和相应的高度值是自动选择的C=contourcZn在矩阵z中计算出n个高度的等高线C=contourcZv在矩阵z中计算出给定高度向量v上计算等高线,当然向量v的维数决定了等高线的数目若只要计算一条高度为a的等高线,输入contourcZ[aa];C=contourcxyZ在矩阵z中,参量x,y确定的坐标轴范围内计算等高线;C=contourcxyZn从矩阵Z中,参量x与y确定的坐标范围内画出n条等高线;C=contourcxyZv从矩阵Z中,参量x与y确定的坐标范围内,画在v指定的高度上指定的等高线命令4contour3功能三维空间等高线图该命令生成一个定义在矩形格栅上曲面的三维等高线图用法contour3Z画出三维空间角度观看矩阵z的等高线图,其中z的元素被认为是距离xy平面的高度,矩阵z至少为2*2阶的等高线的条数与高度是自动选择的若[m,n]=size(z),则x轴的范围为[1n],y轴的范围为[1m]contour3Zn画出由矩阵z确定的n条等高线的三维图contour3Zv在参量v指定的高度上画出三维等高线,当然等高线条数与向量v的维数相同;若想只画一条高度为h的等高线,输入contour3Z[hh]contour3XYZ、contour3XYZn、contour3XYZv用X与Y定义x-轴与y-轴的范围若X为矩阵,则X1:定义x-轴的范围;若Y为矩阵,则Y:1定义y-轴的范围;若X与Y同时为矩阵,则它们必须同型不论为哪种使用形式,所起的作用与命令surf相同若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Ycontour3…LineSpec用参量LineSpec指定的线型与颜色画等高线[Ch]=contour3…画出图形,同时返回与命令contourc中相同的等高线矩阵C,包含所有图形对象的句柄向量h;除非没有指定LineSpec参数,contour3将生成patch图形对象,且当前的color__p属性与caxis属性将控制颜色的显示不论使用何种形式,该命令都生成line图形对象例7-28[XY]=meshgrid[-2:.25:2];Z=X.*exp-X.^2-Y.^2;contour3XYZ30图形结果为图7-28命令5contourf功能填充二维等高线图即先画出不同等高线,然后相邻的等高线之间用同一颜色进行填充填充用的颜色决定于当前的色图颜色用法contourfZ矩阵z的等高线图,其中z理解成距平面的高度Z至少为2*2阶的等高线的条数与高度是自动选择的contourfZn画出矩阵z的n条高度不同的等高线contourfZv画出矩阵z的、由v指定的高度的等高线图contourfXYZ、contourfXYZn、contourfXYZv画出矩阵z的等高线图,其中X与Y用于指定x-轴与y-轴的范围若X与Y为矩阵,则必须与Z同型若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y[ChCF]=contourf…画出图形,同时返回与命令contourc中相同的等高线矩阵C,C也可被命令clabel使用;返回包含patch图形对象的句柄向量h;返回一用于填充用的矩阵CF例7-29contourfpeaks3020;color__pgray图形结果为图7-29命令6pie3功能三维饼形图用法pie3X用x中的数据画一个三维饼形图X中的每一个元素代表三维饼形图中的一部分pie3Xexplodex中的某一部分可以从三维饼形图中分离出来explode是一个与x同型的向量或矩阵,explode中非零的元素对应x中从饼形图中分离出来的分量h=pie3…返回一个分量为patch,su_____和text图形句柄对象的向量即每一块对应一个句柄注意命令pie3将x的每一个元素在所有元素的总和中所占的比例表达出来若x中的分量和小于1(则所有元素小于1),则认为x中的值指明三维饼形图的每一部分的大小例7-30x=[
130.
52.52]ex=
[01000]pie3xex图形结果为图7-
307.
2.3曲面与网格图命令命令1mesh功能生成由X,Y和Z指定的网线面,由C指定的颜色的三维网格图网格图是作为视点由view
(3)设定的su_____图形对象曲面的颜色与背景颜色相同(当要动画显示不透明曲面时,这时可用命令hidden控制),或者当画一个标准的可透视的网线图时,曲面的颜色就没有(命令shading控制渲染模式)当前的色图决定线的颜色用法meshXYZ画出颜色由c指定的三维网格图,所以和曲面的高度相匹配,1.若X与Y均为向量,length(X)=n,length(Y)=m,而[m,n]=size(Z),空间中的点XjYIZIj为所画曲面网线的交点,分别地,X对应于z的列,Y对应于z的行2.若X与Y均为矩阵,则空间中的点XIjYIjZIj为所画曲面的网线的交点meshZ由[n,m]=size(Z)得,X=1n与Y=1m,其中z为定义在矩形划分区域上的单值函数mesh…C用由矩阵c指定的颜色画网线网格图__tlab对矩阵c中的数据进行线性处理,以便从当前色图中获得有用的颜色mesh…PropertyName’PropertyValue…对指定的属性PropertyName设置属性值PropertyValue可以在同一语句中对多个属性进行设置h=mesh…返回su_____图形对象句柄运算规则1.数据X,Y和z的范围,或者是对当前轴的XLimMode,YLimMode和ZLimMode属性的设置决定坐标轴的范围命令aXis可对这些属性进行设置2.参量c的范围,或者是对当前轴的Clim和ClimMode属性的设置(可用命令caxis进行设置),决定颜色的刻度化程度刻度化颜色值作为引用当前色图的下标3.网格图显示命令生成由于把z的数据值用当前色图表现出来的颜色值__tlab会自动用最大值与最小值计算颜色的范围(可用命令caxisauto进行设置),最小值用色图中的第一个颜色表现,最大值用色图中的最后一个颜色表现__tlab会对数据的中间值执行一个线性变换,使数据能在当前的范围内显示出来例7-31[XY]=meshgrid-3:.125:3;Z=peaksXY;meshXYZ;图形结果为图7-31命令2surf功能在矩形区域内显示三维带阴影曲面图用法surfZ生成一个由矩阵z确定的三维带阴影的曲面图,其中[m,n]=size(Z),而X=1n,Y=1m高度z为定义在一个几何矩形区域内的单值函数,z同时指定曲面高度数据的颜色,所以颜色对于曲面高度是恰当的surfXYZ数据z同时为曲面高度,也是颜色数据X和Y为定义X坐标轴和Y坐标轴的曲面数据若X与Y均为向量,length(X)=n,length(Y)=m,而[mn]=size(Z),在这种情况下,空间曲面上的节点为(XIYjZIj)surfXYZC用指定的颜色c画出三维网格图__tlab会自动对矩阵c中的数据进行线性变换,以获得当前色图中可用的颜色surf…’PropertyName’PropertyValue对指定的属性PropertyName设置为属性值PropertyValueh=surf…返回一个su_____图形对象句柄给变量h运算规则1.严格地讲,一个参数曲面是由两个__的变量I、j来定义的,它们在一个矩形区域上连续变化例如,a=I=bc=j=d,三个变量X,Y,Z确定了曲面曲面颜色由第四参数矩阵C确定2.矩形定义域上的点有如下关系AI-1j|BIj-1----CIj----DIj+1|EI+1j这个矩形坐标方格对应于曲面上的有四条边的块,在空间的点的坐标为[XYZ,每个矩形内部的点根据矩形的下标和相邻的四个点连接;曲面上的点只有相邻的三个点,曲面上四个角上的点只有两个相邻点,上面这些定义了一个四边形的网格图3.曲面颜色可以有两种方法来指定指定每个节点的颜色或者是每一块的中心点颜色在这种一般的设置中,曲面不一定为变量X和Y的单值函数,进一步而言,有四边的曲面块不一定为平面的,而可以用极坐标,柱面坐标和球面坐标定义曲面4.命令shading设置阴影模式若模式为interp,C必须与X,Y,Z同型;它指定了每个节点的颜色,曲面块内的颜色由附近几个点的颜色用双线性函数计算出来的若模式为facted(缺省模式)或flat,cIj指定曲面块中的颜色AIj-----------BIj+1|CIj|CI+1j---------DI+1j在这种情形下,C可以与X,Y,和Z同型,且它的最后一行和最后一列将被忽略,换句话说,就是C的行数和列数可以比X,Y,Z少15.命令surf将指定图形视角为view
(3)6.数据X,Y,Z的范围或者通过对坐标轴的属性XlimMode,YlimMode和ZlimMode的当前设置(可以通过命令axis来设置),将决定坐标轴的标签7.参数C的范围或者通过对坐标轴的属性Clim和ClimMode的设置(可以通过命令caxis来设置),将决定颜色刻度化刻度化的颜色值将作为引用当前色图的下标例7-32[XYZ]=peaks30;surfXYZcolor__phsv结果图形为图7-32命令3surfc功能在矩形区域内显示三维带阴影曲面图,且在曲面下面画出等高线用法surfcZ、surfcXYZ、surfcXYZC、surfc…’PropertyName’PropertyValue、surfc…、h=surfc…上面各个使用形式的曲面效果与命令surf的相同,只不过是在曲面下面增加了曲面的等高线而已例7-33[XYZ]=peaks30;surfcXYZcolor__phsv图形结果为图7-33命令4surfl功能画带光照模式的三维曲面图该命令显示一个带阴影的曲面,结合了周围的,散射的和镜面反射的光照模式想获得较平滑的颜色过度,要使用有线性强度变化的色图(如gray,copper,bone,pink等)参数X,Y,Z确定的点定义了参数曲面的“里面”和“外面”,若用户想曲面的“里面”有光照模式,只要使用surflX’Y’Z’用法surflZ以向量z的元素生成一个三维的带阴影的曲面,其中阴影模式中的光源的方位、光照系数为缺省值(见下面)surflXYZ以矩阵X,Y,Z生成的一个三维的带阴影的曲面,其中阴影模式中的光源的方位、光照系数为缺省值(见下面)surfl…’light’用一个__tlab光照对象(lighto__ect)生成一个带颜色、带光照的曲面,这与用缺省光照模式产生的效果不同surfl…’cdata’改变曲面颜色数据(colordata),使曲面成为可反光的曲面surfl…s指定光源与曲面之间的方位s,其中s为一个二维向量[azimuth,elevation],或者三维向量[sx,sy,sz]缺省光源方位为从当前视角开始,逆时针45℉(度)surflXYZsk指定反射常系数k,其中k为一个定义环境光(ambientlight)系数(0=ka=1)、漫反射diffusereflection系数(0〈=kb〈=1〉、镜面反射specularreflection系数(0〈=ks〈=1〉与镜面反射亮度(以相素为单位)等的四维向量[ka,kd,ks,shine],缺省值为k=[
0.
550.
60.410]h=surfl…返回一个曲面图形句柄向量h例7-34[XY]=meshgrid-3:1/8:3;Z=peaksXY;surflXYZ;shadinginterpcolor__pgray;图形结果为图7-34命令5wate___ll功能瀑布图用法wate___llXYZ用所给参数X、Y与Z的数据画一“瀑布”效果图若X与Y都是向量,则X与Z的列相对应,Y与Z的行相对应,即lengthX=Z的列数,lengthY=Z的行数参数X与Y定义了x-轴与y-轴,Z定义了z-轴的高度,Z同时确定了颜色,所以颜色能恰当地反映曲面的高度若想研究数据的列,可以输入wate___llZ’或wate___llX’Y’Z’wate___llZ画出一瀑布图,其中缺省地有X=1:Z的行数,Y=1:Z的行数,且Z同时确定颜色,所以颜色能恰当地反映曲面高度wate___ll…C用比例化的颜色值从当前色图中获得颜色,参量C决定颜色的比例,为此,必须与Z同型系统使用一线性变换,从当前色图中获得颜色h=wate___ll…返回patch图形对象的句柄h,可用于画出图形例7-35[XYZ]=peaks30;wate___llXYZ图形结果为图7-35命令6cylinder功能生成圆柱图形该命令生成一单位圆柱体的x-,y-,z-轴的坐标值用户可以用命令surf或命令mesh画出圆柱形对象,或者用没有输出参量的形式而立即画出图形用法[XYZ]=cylinder返回一半径为
1、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有20个距离相同的点[XYZ]=cylinder®返回一半径为r、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有20个距离相同的点[XYZ]=cylinderrn返回一半径为r、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有指定的n个距离相同的点cylinder…没有任何的输出参量,直接画出圆柱体例7-36t=0:pi/10:2*pi;[XYZ]=cylinder2+cost.^2;surfXYZ;axissquare图形结果为图7-36命令7sphere功能生成球体用法sphere生成三维直角坐标系中的单位球体该单位球体由20*20个面spheren在当前坐标系中画出有n*n个面的球体[XYZ]=spheren返回三个阶数为n+1*n+1的,直角坐标系中的坐标矩阵该命令没有画图,只是返回矩阵用户可以用命令surf(X,Y,Z)或mesh(X,Y,Z)画出球体例7-37[XYZ]=sphere;meshXYZhiddenoff图形结果为图7-
377.
2.4三维数据的其他表现形式命令命令1pcolor功能伪彩色图该图为一矩形单元的、由参数c定义了颜色的阵列,系统通过c中的每相邻的四点定义的曲面补片而生成一伪彩色图是从上面向下观看的“平面”曲面图若用户使用命令shadingfa__ted或shadingflat,则每一单元的固定颜色是与之相连的角的颜色有关的所以,Cij定义了单元的地i行与地j列的颜色C中的最后一行与最后一列都没有用上若用户使用命令shadinginterp,则每一单元的颜色是对它的四个顶点的颜色进行一双线性插值后的颜色,这时c的所有元素都参加了运算用法pcolorC画一伪彩色图C中的元素都线性地映射于当前色图下标从C映射到当前的色图是由命令color__p和caxis定义的pcolorXYC在参数x和y指定的位置上画一由C确定的为彩色图该图为一逻辑上为矩形、带二维格栅的、顶点在[XijYij]的图形(若X和Y为矩阵时)参量X与Y为指定格栅线的向量或矩阵若X与Y为向量,则X对应于C的列,而y对应于C的行;若X与Y同为矩阵,则必须为同型矩阵该命令等价于命令surfXY0C,观察角度为view
[090]h=pcolor…返回一su_____图形对象句柄于h例7-38pcolor__gic20color__pgray2axisij;axissquare图形结果为图7-38命令2quiver功能矢量图或速度图用法quiverUV在范围为x=1:n和y=1:m的坐标系中显示由U和V定义的向量,而[mn]=sizeU=sizeV,这种形式是在一个几何矩形中画出U和V的,quiver命令本身会自动地画出这些向量,使之不会重叠quiverXYUV由向量X和Y中的分量的任意组合而成的向量与若X与Y都是向量length(X)=n,而length(Y)=m,而[m,n]=size(U)=size(V),向量X对应于矩阵U、V的列向量,而向量Y对应于矩阵U、V的行向量quiver…scale自动对向量的长度进行处理使之不会重叠,当然可以对scale进行取值,若scale=2,则向量长度伸长2倍,若scale=0,则如实画出向量图quiver…LineSpec可以指定画矢量图用的线型,符号,颜色,quiver命令会在原来的向量图上画出记号quiver…LineSpecfilled对用LineSpec指定的记号进行填充h=quiver…返回每个向量图的句柄例7-39[zxy]=peaks30;[DxDy]=gra___ntz
0.
10.1;quiverxyDxDy图形结果为图7-39命令3sli__功能立体切片图该命令显示通过立体图形的矩形切片图用法sli__XYZVsxsysz显示三元函数V=VXYZ确定的超立体形在x-轴、y-轴与z-轴方向上的若干点(对应若干平面即若函数V=VXYZ中有一变量如X取一定值X0,则函数V=VX0YZ变成一立体曲面(只不过是将该曲面通过颜色表示高度V从而显示于__面而已)的切片图,各点的坐标由参量向量sx、sy与sz指定参量X、参量Y与参量Z为三维数组,用于指定立方体V的坐标参量X、Y与Z必须有单调的、正交的间隔(如同用命令meshgrid生成的一样)在每一点上的颜色由对超立体V的三维内插值确定sli__Vsxsysz显示三元函数V=VXYZ确定的超立体形在x-轴、y-轴与z-轴方向上的若干点(对应若干平面)的切片图,各点的坐标由数量向量sx、sy与sz指定其中V为三维数组(阶数为m*n*p),缺省地有X=1:m、Y=1:n、Z=1:psli__VXIYIZI显示参量矩阵XI、YI与ZI确定的、超立体图形的切面图参量XI、YI与ZI定义了一曲面,同时会在曲面的点上计算超立体V的值参量XI、YI与ZI必须为同型矩阵sli__XYZVXIYIZI沿着由矩阵XI、YI与ZI定义的曲面画穿过超立体图形V的切片sli__…method指定内插值的方法‘method’为如__法之一‘linear’、‘cubic’、‘nearest’‘linear’——指定使用三次线性内插值法(该状态为缺省的);‘cubic’——指定使用三次立方内插值法;‘nearest’——指定使用最近点内插值法h=sli__…返回一曲面图形对象的句柄向量h命令4axis功能坐标轴的刻度与外在显示用法axis[xminx__xyminy__x]设置当前坐标轴的x-轴与y-轴的范围axis[xminx__xyminy__xzminz__xcminc__x]设置当前坐标轴的x-轴、y-轴与z-轴的范围,当前颜色刻度范围该命令也同时设置当前坐标轴的属性Xlim、Ylim与Zlim为所给参数列表中的最大值和最小值另外,坐标轴属性XlimMode、YlimMode与ZlimMode设置为‘__nual’v=axis返回一包含x-轴、y-轴与z-轴的刻度因子的行向量,其中v为一四维或六维向量,这取决于当前坐标为二维还是三维的返回的值包含当前坐标轴的XLim、Ylim与Zlim属性值axisauto设置系统到它的缺省动作——自动计算当前轴的范围,这取决于输入参量x,y与z的数据中的最大值与最小值同时将当前坐标轴的属性XlimMode、YlimMode与ZlimMode设置为‘auto’用户可以指定对某一坐标轴进行自动操作例如axis’autox’将自动计算x-轴的范围;axis’autoyz’将自动计算y-轴与z-轴的范围axis__nual、axisaxis把坐标固定在当前的范围,这样,若保持状态hold为on,后面的图形仍用相同界限该命令设置了属性XLimMode、属性YLimMode与属性ZlimMode为__nualaxistight把坐标轴的范围定为数据的范围,即坐标轴中没有多余的部分axisfill该命令用于将坐标轴的取值范围分别设置为绘图所用数据在相应方向上的最大、最小值axisij使用矩阵坐标系坐标原点在左上角、横坐标(j-轴)的值从左到右增加,纵坐标(i-轴)的值从上到下增加axisxy使用笛卡儿坐标系(缺省)坐标原点在左下角、横坐标(x-轴)的值从左到右增加,纵坐标(y-轴)的值从下到上增加axisequal设置坐标轴的纵横比,使在每个方向的数据单位都相同其中x-轴、y-轴与z-轴将根据所给数据在各个方向的数据单位自动调整其纵横比axisi__ge效果与命令axisequal相同,只是图形区域刚好紧紧包围图象数据axissquare设置当前图形为正方形(或立方体形),系统将调整x-轴、y-轴与z-轴,使它们有相同的长度,同时相应地自动调整数据单位之间的增加量axisnor__l自动调整坐标轴的纵横比,还有用于填充图形区域的、显示于坐标轴上的数据单位的纵横比表7-7显示由上面三个命令设置的坐标轴属性表7-7命令坐标轴属性axisequalaxisnor__laxissquareaxistightequalDataAspectRatioMode
[111]没有设置没有设置
[111]PlotBoxAspectRatio__nualautoauto__nualPlotBoxAspectRatioMode
[344]没有设置
[111]AutoStretch-to-fill禁止可行禁止禁止axisvis3d该命令将冻结坐标系此时的状态,以便进行旋转axisoff关闭所用坐标轴上的标记、格栅和单位标记但保留由text和gtext设置的对象axison显示坐标轴上的标记、单位和格栅[modevisibilitydirection]=axisstate返回表明当前坐标轴的设置属性的三个字符串,见表7-8表7-8输出参量返回字符串说明Mode‘’auto’或’__nual’若XLimMode、YlimMode与ZlimMode都设置为auto,则mode为auto;若XLimMode、YlimMode或者ZlimMode都设置为__nual,则mode为__nualVisibility‘’on’或’off’Direction‘’xy’或’ij’例7-40x=0:.025:pi/2;plotxexpx.*sin2*x-maxis[0pi/205]图形结果为图7-40命令5hidden功能在一网格图中显示隐含线条隐含线条的显示,实际上是显示那些从观察角度观看没有被其他物体遮住的线条用法hiddenon对当前图形打开隐含线条的显示状态,使网格图后面的线条被前面的线条遮住设置曲面图形对象的属性Fa__Color为坐标轴背景颜色这是系统的缺省操作hiddenoff对当前图形关闭隐含线条的显示hidden在两种状态on与off之间切换例7-41meshpeakshiddenoff图形结果为图7-41命令6shading功能设置颜__调属性该命令控制曲面与补片等的图形对象的颜__调同时设置当前坐标轴中的所有曲面与补片图形对象的属性EdgeColor与Fa__Color命令shading设置恰当的属性值,这取决于曲面或补片对象是表现网格图或实曲面用法shadingflat使网格图上的每一线段与每一小面有一相同颜色,该颜色由线段的末端的端点颜色确定;或由小面的、有小型的下标或索引的四个角的颜色确定shadingfa__ted带重叠的黑色网格线的平面色调模式这是缺省的色调模式shadinginterp在每一线段与曲面上显示不同的颜色,该颜色为通过在每一线段两边的、或者为不同小曲面之间的色图的索引或真颜色进行内插值得到的颜色例7-42sphere16axissquareshadingflattitleFlatShading图形结果为图7-42命令7caxis功能颜色坐标轴刻度命令caxis控制着对应色图的数据值的映射图它影响下面对象之一的、用带索引的颜色数据(CData)与颜色数据映射(CData__pping)控制的刻度的图形对象su_____、patches与i__ges;它没有影响带用颜色数据(CData)或颜色数据映射(CData__pping)直接设置的颜色的图形对象su_____、i__ges或patches该命令还改变坐标轴图形对象的属性Clim与ClimMode用法caxis[cminc__x]用指定的最大值与最小值设置颜色范围数据值中小于cmin或大于c__x的,将分别地映射于cmin与c__x;处于cmin与c__x之间的数据将线性地映射于当前色图caxisauto让系统自动地计算数据的最大值与最小值对应的颜色范围这是系统的缺省动作数据中的正无穷大(Inf)对应于最大颜色值;负无穷大(-Inf)对应于最小颜色值;带颜色值设置为NaN的面或者边界将不显示caxis__nual、caxiscaxis冻结当前颜色坐标轴的刻度范围这样,当hold设置为on时,可使后面的图形命令使用相同的颜色范围v=caxis返回一包含当前正在使用的颜色范围的二维向量v=[cminc__x]caxisaxes_handle…使由参量axis_handle指定的坐标轴,而非当前坐标轴颜色坐标轴刻度工作原理使用带索引的颜色数据Cdata与颜色数据映射Cdata__pping的图形对象su_____、patch与i__ge将设置成刻度化的,在每次图形渲染时,将映__色数据值为当前图形的颜色当颜色数据值等于或小于cmin时,将它映射为当前色图中的第一个颜色;当颜色数据值等于或大于c__x时,将它映射为当前色图中的最后一个颜色;对于处于cmin与c__x之间的颜色数据(例如c),系统将执行下列线性转换,以获得对应当前色图(它的长度为m)中的颜色的索引(当前色图的行指标index)index=fixC-min/c__x-cmin*m+1例7-43[XYZ]=sphere;C=Z;surfXYZCcaxis[-13]图形结果为图7-43命令8view功能指定立体图形的观察点观察者(观察点)的位置决定了坐标轴的方向用户可以用方位角(azimuth)和仰角(elevation)一起,或者用空间中的一点来确定观察点的位置用法viewazel、view[azel]给三维空间图形设置观察点的方位角方位角az与仰角el为这两个旋转角度做一通过视点与z-轴的平面,与xy平面有一交线,该交线与y-轴的反方向的、按逆时针方向(从z-轴的方向观察)计算的、单位为度的夹角,就是观察点的方位角az若角度为负值,则按顺时针方向计算;在通过视点与z-轴的平面上,用一直线连接视点与坐标原点,该直线与xy平面的夹角就是观察点的仰角el若仰角为负值,则观察点转移到曲面下面view[xyz]在笛卡儿坐标系中于点(xyz)设置视点注意输入参量只能是方括号的向量形式,而非数学中的点的形式view2设置缺省的二维形式视点其中az=0,el=90,即从z-轴上方观看view3设置缺省的三维形式视点其中az=-
37.5,el=30viewT根据转换矩阵T设置视点其中T为4*4阶的矩阵,如同用命令viewmtx生成的透视转换矩阵一样[azel]=view返回当前的方位角az与仰角elT=view返回当前的4*4阶的转换矩阵T例7-44peaks;az=0;el=90;viewazel图形结果为图7-44命令9viewmtx功能视点转换矩阵计算一个4*4阶的正交的或透视的转换矩阵,该矩阵将一四维的、齐次的向量转换到一个二维的视平面上(如计算机平面上)用法T=viewmtxazel返回一与视点的方位角az与仰角el(单位都为度)对应的正交矩阵,并没有改变当前视点T=viewmtxazelphi返回一透视的转换矩阵,其中参量phi是单位为度的透视角度,为标准化立方体(单位为度)的对像视角角度与透视扭曲程度表7-9Phi的值说明0度正交投影10度类似以远距离投影25度类似以普通投影60度类似以广角投影用户可以通过使用返回的矩阵,用命令viewT改变视点的位置该4*4阶的矩阵将变换四维的、同次的向量成形式为xyzw的非标准化的向量,其中w不等于1正交化的x-元素与y-元素组成的向量x/wy/wz/w1为我们所需的二维向量(注一四维同次向量为在对应的三维向量后面增加一个1例如[xyz1]为对应于三维空间中的点[xyz]的四维向量)T=viewmtxazelphixc返回以在标准化的图形立方体中的点xc为目标点的透视矩阵(就像相机正对着点xc一样),目标点xc为视角的中心点用户可以用一三维向量xc=[xcyczc]指定该中心点,每一分量都在区间[0,1]上缺省值为xc=
[000]命令10surfnorm功能计算与显示三维曲面的法线该命令计算用户命令surf中的曲面法线用法surfnormZ、surfnormXYZ画出一曲面与它的法线图其中矩阵Z用于指定曲面的高度值;X与Y为向量或矩阵,用于定义曲面的x与y部分[NxNyNz]=surform…返回组成曲面的法线在三个坐标轴上的投影分量NxNy与Nz例7-45[xyz]=cylinder1:10;surfnormyxzaxis[-1212-1212-
0.11]图形结果为图7-45图7-45曲面法线图
7.3通用图形函数命令
7.
3.1图形对象句柄命令命令1figure功能创建一个新的图形对象图形对象为在屏幕上单独的窗口,在窗口中可以输出图形用法figure用缺省的属性值创建一个新的图形对象figurePropertyNamePropertyValue…对指定的属性PropertyName用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口,对于那些没有指定的属性,则用缺省值属性名与有效的属性值见下表figureh
1.若h为一个已经存在的图形的句柄,则figureh使由h标记的图形成为当前图形,使它可见,且在屏幕上把它显示到所有图形之前当前图形为图像输出的地方
2.若h不是已经存在图形的句柄,但是为一整数,则该命令生成一图形窗口,同时把该窗口的句柄赋值为h;若h不是一图形窗口的句柄,也不是一整数,则返回一错误信息h=figure…返回图形窗口对象的句柄给h表7-10属性名属性说明有效属性值窗口位置Position图形窗口的位置与大小有效值四维向量[leftbottomwidthheight]缺省值决定于显示Units用于解释属性Position的单位有效值inches英寸__ntimeters厘米nor__lized标准化单位,认为窗口为一长宽都是1points点pixels像素characters字符缺省值pixels指定类型与外在显示Color窗口的背景颜色有效值ColorSpec(有效的颜色参数)缺省值取决于颜色表参见命令colordefMenubar转换图形窗口菜单条的“开”与“关”有效值none、figure缺省值figureName显示图形窗口的标题有效值任意字符串缺省值‘’(空字符串)NumberTitle标题栏中是否显示’FigureNo.n’其中n为图形窗口的编号有效值on、off缺省值onResize指定图形窗口是否可以通过鼠标改变大小有效值on、off缺省值onSelectionHighlight当图形窗口被选中时,是否突出显示有效值on、off缺省值onVisible确定图形窗口是否可见有效值on、off缺省值onWindowStyle指定窗口为标准窗口还是典型窗口有效值nor__l(标准窗口)、modal(典型窗口)缺省值nor__l控制色图Color__p图形窗口的色图有效值m*3阶的RGB颜色矩阵缺省值jet色图Dither__p用于真颜色数据以伪颜色显示的色图有效值m*3阶的RGB颜色矩阵缺省值有所有颜色的色图Dither__pMode是否使用系统生成的抖动色图有效值auto、__nual缺省值__nualFixedColors不是从色图中获得的颜色有效值m*3阶的RGB颜色矩阵缺省值无(只读模式)MinColor__p系统颜色表中能使用的最少颜色数有效值任一标量缺省值64ShareColors允许__TLAB共享系统颜色表中的颜色有效值on、off缺省值on指定透明度Alpha__p图形窗口的α色图,用于设定透明度有效值m*1维向量,每一分量在
[01]之间缺省值64*1维向量指定渲染模式BackingStore打开或关闭屏幕像素缓冲区有效值on、off缺省值onDoubleBuffer对于简单的动画渲染是否使用快速缓冲有效值on、off缺省值offRenderer用于屏幕和__的渲染模式有效值painters、zbuffer、OpenGL缺省值系统自动选择关于图形窗口的一般信息Children显示于图形窗口中的任意对象句柄有效值句柄向量FileName命令guide使用的文件名有效值字符串Parent图形窗口的父对象根屏幕有效值总是0(即根屏幕)Selected是否显示窗口的“选中”状态有效值on、off缺省值onTag用户指定的图形窗口标签有效值任意字符串缺省值(空字符串)Type图形对象的类型(只读类型)有效值figureUserData用户指定的数据有效值任一矩阵缺省值[](空矩阵)RendererMode缺省的或用户指定的渲染程序有效值auto、__nual缺省值auto关于当前状态的信息CurrentAxes在图形窗口中的当前坐标轴的句柄有效值坐标轴句柄CurrentCharacter在图形窗口中最后一个输入的字符有效值单个字符CurrentOject图形窗口中的当前对象的句柄有效值图形对象句柄CurrentPoint图形窗口中最后单击的按钮的位置有效值二维向量[x-coord,y-coord]SelectionType鼠标选取类型有效值nor__l、extended、alt、open回调程序的执行BusyAction指定如何处理中断调用程序有效值can__l、queue缺省值queueButtonDownFcn当在窗口中空闲点按下鼠标按钮时,执行的回调程序有效值字符串缺省值(空字符串)CloseRequestFcn当执行命令关闭时,定义一回调程序有效值字符串缺省值closereqCreateFcn当打开一图形窗口时,定义一回调程序有效值字符串缺省值(空字符串)DeleteFcn当删除一图形窗口时,定义一回调程序有效值字符串缺省值(空字符串)Interruptible定义一回调程序是否可中断有效值on、off缺省值on(可以中断)KeyPressFcn当在图形窗口中按下一键时,定义一回调程序有效值字符串缺省值(空字符串)ResizeFcn当图形窗口改变大小时,定义一回调程序有效值字符串缺省值(空字符串)UIContextMenu定义与图形窗口相关的菜单有效值属性UIContrextmenu的句柄WindowButtonDownFcn当在图形窗口中按下鼠标时,定义一回调程序有效值字符串缺省值(空字符串)WindowButto__otionFcn当将鼠标移进图形窗口中时,定义一回调程序有效值字符串缺省值(空字符串)WindowButtonUpFcn当在图形窗口中松开按钮时,定义一回调程序有效值字符串缺省值(空字符串)访问对象的控制IntegerHandle指定使用整数或非整数图形句柄有效值on、off缺省值on(整数句柄)HandleVisiblity指定图形窗口句柄是否可见有效值on、callback、off缺省值onHitTest定义图形窗口是否能变成当前对象参见图形窗口属性CurrentO__ect有效值on、off缺省值onNextPlot在图形窗口中定义如何显示另外的图形有效值repla__children、add、repla__缺省值add定义鼠标指针Pointer选取鼠标记号有效值crosshair、arrow、topr、watch、topl、botl、botr、circle、cross、fleur、left、right、top、fullcrosshair、bottom、ibeam、custom缺省值arrowPointerShapeCData定义鼠标外形的数据有效值16*16阶矩阵缺省值将鼠标设置为custom且可见PointerShapeHotSpot设置鼠标活跃的点有效值二维向量[row,column]缺省值
[11]例7-46scrsz=get0ScreenSize;figurePosition[1scrsz4/2scrsz3/2scrsz4/2]执行上面的语句,会在屏幕的左上角生成一没有任何符号的窗口命令2line功能生成线(line)对象命令line在当前坐标轴中生成一个线对象用户可以指定线的颜色,宽度,类型和标记符号等其他特性命令line有两种形式1.自动循环使用颜色和类型当用户用非正式语法来指定矩阵坐标数据lineXYZ,__tlab将循环使用由坐标轴ColorOrder和LineStyle指定的颜色顺序和类型顺序2.纯粹低级操作当用户用属性名和属性值调用命令line line‘XData’x’YData’y’ZData’z__tlab将在当前用缺省的颜色(参见命令colordef的使用)画出线对象注意一点的是,用户不能在命令line的低级形式中使用矩阵数据用法lineXY在当前的坐标轴中画出由向量x和y定义的线条若x与y为同型的矩阵,则对于x,y的每一列画出一线条lineXYZ在三维空间中画出由x,y,z定义的线条lineXYZPropertyNamePropertyValue…画出由参数x,y,z确定的线条,其中对指定属性PropertyName设置为PropertyValue,其他没有指定属性用缺省值属性LineStyle和__rker参见命令plotlinePropertyNamePropertyValue…对属性用相应的输入参数来设置而画出线条这是命令line的低级使用形式,此时不接受矩阵参数除了该情形,其他形式都接受矩阵参数h=line…返回每一条线的线对象对应的句柄向量表7-11属性名说明有效属性值定义对象的数据Xdata定义线条的x-轴坐标参量有效值向量或矩阵缺省值
[01]Ydata定义线条的y-轴坐标参量有效值向量或矩阵缺省值
[01]Zdata定义线条的z-轴坐标参量有效值向量或矩阵缺省值
[01]定义线型与数据点标记符LineStyle定义线条的类型有效值-、--、、、-.、none缺省值-(实线)LineWidth定义线条的宽度(以磅为单位)有效值一标量缺省值
0.5磅__rker定义标记数据点的标记符号有效值13种类型之一缺省值none__rkerEdgeColor定义标记颜色或可填充标记的边界颜色有效值auto、none、ColorSpec缺省值auto__rke_____Color定义封闭形标记的填充颜色__rkerSize定义标记大小有效值标量(磅)缺省值6(磅)控制线条的显示Clipping坐标轴矩形区域是否可剪辑有效值on、off缺省值onEraseMode定义显示与擦除线条的方法(对于动画显示)有效值nor__l、none、 xor、background缺省值nor__lSelectionHighlight当线条被选中时,是否突出显示有效值on、off缺省值onVisible定义线条是否可见有效值on、off缺省值onColor定义线条颜色有效值ColorSpec对象访问的控制HandleVisibility定义线条句柄对其他函数是否可见有效值on、off、callback缺省值onHitTest定义线条能否成为当前对象有效值on、off缺省值on关于线条的一般信息Children线条没有子对象有效值[](空矩阵)Parent线条对象的父对象为坐标轴对象有效值坐标轴句柄Selected是否显示线条的“选中”状态有效值on、off缺省值onTag用户定义的标签有效值任一字符串缺省值’’(空字符串)Type图形对象的类型(只读类型)有效值lineUserData用户定义的数据有效值任一矩阵缺省值[](空矩阵)与回调程序执行有关的属性BusyAction定义如何处理回调中断程序有效值can__l、queue缺省值queueButtonDownFcn当在线条上按下鼠标时,定义一回调程序有效值字符串缺省值(空字符串)CreateFcn当生成线条时,定义一回调程序有效值字符串缺省值(空字符串)DeleteFcn当删除线条时,定义一回调程序有效值字符串缺省值(空字符串)Interruptible定义回调程序是否可中断有效值on、off缺省值on(可中断)UIContextMenu定义与线条相关的菜单有效值UIContextMenu的句柄例7-47t=0:pi/20:2*pi;hline1=plottexpt.*sintk;hline2=linet+.06expt.*sintLineWidth4Color[.
8.
8.8];set__aChildren[hline1hline2]生成图形为图7-46图7-46命令line画的函数图例7-48生成随机直线图linerand42rand42rand41linerand14rand14rand14linerand41rand41rand41linerand24rand24rand14linerand42rand42rand41生成图形为图7-47命令3patch功能生成补片图形对象该命令为生成补片图形对象的低级图形函数补片为一个或多个多边形,多边形的顶点为坐标中的点用户可以指定补片的颜色与光照模式用法patchXYC在当前坐标轴中增加二维带填充模式的补片参量XY确定顶点的位置若XY为矩阵(同型或不同型),系统按列生成多个多边形若x,y没有定义一封闭的多边形,则命令自动地将多边形封闭参量x与y可以定义凹的或自身交叉的多边形可是,一个不可分隔的补片的边界自身交叉,则不能完整填充在这种情况下,最好是将多边形分解成几个小的、自身没有交叉的多边形参量c指定每一补片的颜色,它可以为简单的ColorSpec,每面一颜色或每一顶点一颜色若c为三维列向量,它将被认为是一直接指定的RGB颜色patchXYZC生成三维的补片对象patchFV用结构FV生成一补片结构FV包含这些域名verti__s,fa__s和可选的fa__vertecdata,这些域名对应于补片的Verti__s属性、Fa__s属性、Fa__VertexCData属性patch…CPropertyNamePropertyValue…在二维XY或三维XYZ空间中对补片指定的属性PropertyName设置为PropertyValuepatchPropertyNamePropertyValue…对所有指定的多个属性PropertyName设置为相应的值PropertyValue该命令形式可以使用户免除颜色的指定,因为系统将使用缺省的面颜色和边界颜色,除非用户准确地对属性Fa__Color与EdgeColor进行设置该命令形式也允许用户通过对属性Fa__s与Verti__s的设置来代替x-,y-与z-轴的输入handle=patch… 返回命令patch生成的补片对象句柄说明函数patch不象其他的高级的区域生成函数,例如函数fill或area,它没有检测图形窗口与坐标轴的属性NextPlot的设置情形它只是简单地在当前坐标轴中添加补片对象而已有两种指定颜色的补片属性名
(1)Cdata——当指定x-,y-与z-轴坐标XDataYDataZData时使用;
(2)Fa__VertexCData——当指定多边形的顶点与连接矩阵时使用以上两个属性接受颜色数据作为索引颜色或者是真颜色RGB其中索引颜色数据能代表当前色图的直接索引或者代表映射到整个色图的线性数据的比例数值命令4su_____功能生成面对象该命令是生成面图形对象的低级函数面对象为由矩阵元素的A(I,j)所在的行下标I为x-坐标,所在的列下标j为y-坐标,元素值为z-坐标确定的点生成的空间多边形用法su_____Z画出由矩阵z确定的曲面,其中z为定义在一几何矩形区域上的单值函数su_____ZC画出颜色由c指定的、面由z指定的空间曲面su_____XYZ曲面由参数x,y,z确定,颜色参数c=z,因此颜色能恰当地反映曲面的高度su_____XYZC曲面由参数x,y,z确定,颜色由参数c确定Su_____xyZ参数x与y为向量,若[mn]=sizez,则要求lengthx=n,lengthy=m,面上的点由xjyizIj确定Su_____xyZC曲面确定如上情形,颜色由参数c确定su_____…PropertyNamePropertyValue…对指定的曲面属性PropertyName指定为PropertyValue,对曲面进行细微控制h=su_____…返回生成面对象的句柄命令5i__ge功能显示__对象该命令通过对矩阵c中每一个元素(每一元素作为引用图形色图下标或直接给出RGB值)的解释而生成一个__对象I__ge命令有两种使用格式1.一个调用命令newplot的高级函数,可以确定在何处放置__与坐标轴的范围为刚好围住__;使刚生成的__放置在坐标轴的刻度线与格栅线之上;属性Ydir设置为rervse;属性View为
[090]2.一个增加__到当前坐标轴的低级命令,而没有调用命令newplot,在低级使用形式中,只能对指定属性进行设置操作用户在命令的输入参量中可以输入属性名/属性值,结构数组,细胞数组等用法i__geC把C作为一__进行显示C中的每一个元素指定了一个“__”矩形中的相应部分的颜色i__gexyC在xy确定的位置上画C的元素其中x,y都为2维矩阵,分别指定x轴与y轴的范围,其效果与i__geC相同,只不过是进行了恰当的比例缩放i__gexyCPropertyNamePropertyValue…该形式为指定属性名/属性值的高级使用形式,在执行该命令之前,先执行命令newploti__gePropertyNamePropertyValue…该形式为低级使用形式,它只接受属性名/属性值的输入handle=i__ge…返回刚生成的__对象的句柄用户可以从上面的任何形式的调用后获得__句柄例7-49loadclowni__geXCData__ppingscaledcolor__p__p图形结果为图7-48命令6uicontrol功能生成用户控制图形对象(用户界面控制)也通过该命令运行图形用户界面当对象被选中时,一般会执行相应的操作系统支持多种控件,每一种都有不同的作用校验框——当单击检验框时,会执行一操作该组件对于提供用户多个__的选择是很有用的要激活一校验框,只需用鼠标单击该组件即可,且选中的状态在组件上显示出来可编辑文本框——允许用户输入与修改文本文字的区域当用户想把文字作为输入时,可使用该组件若一可编辑文本框有焦点,则单击文本框的菜单栏不会执行任何操作因此,在单击菜单条后,语句getedit_handle’String’并没有返回当前编辑框中的内容因为系统必须执行回调函数来改变属性string的值,即使屏幕上显示的文字已经改变框架——该组件为一封闭的、可见的、图形窗口区域框架能使一用户图形界面中相关的控制组件能容易理解框架没有相关的回调程序只有控制组件能在框架中显示框架不是透明的,因此用户定义的组件先后顺序决定了组件是否被框架遮住或可见属性Stackingorder决定了控制组件的显示顺序第一个定义的组件最先显示,后面定义的控制组件则覆盖已经存在的组件若用户要用一框架包围一些组件,则必须第一个定义框架列表框——显示一些项目的列表(用命令string设置),且允许用户选择一个或多个项目属性Min与__x控制着选择的模式属性Value显示可选择的项目与包含着字符串列表中项目的索引;对于选择了多个项目则用向量表示在任何的能改变属性Value值的、鼠标松开的操作之后,系统__TLAB将马上执行列表框的回调函数因此,用户有必要增加一“Done”按钮,用于推迟当要多次选择项目时的操作在执行列表框回调函数Callback属性之前,列表框中项目的选择有单击或双击之分,对应于将图形窗口属性SelectionType设置为nor__l或open弹出菜单——当组件被按下时,打开且显示一选择列表(用命令string设置)当没有打开时,该组件显示当前的选择项该组件对于用户想给其他用户提供一系列的互斥的选择项,又不想占用太多的区域普通按钮——当该组件被按下时,将执行一操作要激活一按钮,只需在按钮上按下鼠标按钮单选按钮——该组件与校验框相类似,但它包含几个互斥的、而且相关的选项(例如在任意时刻,只能选择一个状态)要激活某一单选按钮,只需在该组件上按下鼠标即可被选中的组件同时显示出来滑块——该组件允许用户通过__某一范围之内的滑块来输入一指定的数值用户要__一滑块,只需在滑块上按下鼠标不放,且在滑块方向上__;或者是在滑槽内单击鼠标;或者是单击滑块条上的箭头当松开鼠标后,滑块所在位置将与一数值对应用户可以设置滑块的最大值、最小值与当前值等静态文本框——显示文本行静态文本经常作为其他控制对象标签,以提供其他用户相关信息,或者是显示一滑块的数值其他用户不能交互地改变静态文本,因此对于静态文本,没有相关的回调函数触发按钮——当该组件被单击且显示出它们的状态(on或者off)时,控制是否执行回调函数用法handle=uicontrolparent在父对象parent上生成一用户图形控制界面用户界面控制对象都是图形窗口的子对象,所以当窗口中没有坐标轴时,同样可以放置控制组件于图形窗口中handle=uicontrol…PropertyNamePropertyValue…参量PropertyName为属性名,参量PropertyValue可为结构数组或者为单元数组,同时随意地返回刚生成的对象的句柄当然用户可以通过命令set与get来设置与询问生成对象的属性值附表7-12列出所有的用于命令uicontrol对象的属性名每一属性名当作一描述该属性的链接表7-12属性名属性名含义属性值控制控件类型与显示BackgroundColor对象的背景颜色有效值ColorSpec缺省值与系统有关Cdata显示于对象之上的真颜色__有效值矩阵ForegroundColor文本字体的颜色有效值ColorSpec缺省值
[000](黑色)SelectionHighlight当对象被选中时突出显示有效值on、off缺省值onString用户控制界面的标签,也是列表框与弹出菜单中的项目有效值任意有效的字符串Visible用户界面控制是否可见有效值on、off缺省值on关于控件对象的一般信息Children用户界面控制界面没有子对象Enable用户界面控制是否可用有效值on、inactive、off缺省值onParent用户界面控制对象的父对象有效值图形窗口标量句柄Selected对象是否为选中状态有效值on、off缺省值offSliderStep滑块步长尺度有效值二维向量缺省值[
0.
0010.1]Style用户界面控制对象的类型有效值pushbutton、edit、togglebutton、slider、text、radiobutton、popupmenu、listbox、frame缺省值pushbuttonTag由用户指定的对象的标记符有效值任意有效字符串TooltipString对象的工具提示有效值任意有效字符串Type图形对象的类型有效值字符串(只读)缺省值uicontrolUserData用户指定的数据有效值矩阵控制控件对象的位置Position用户界面控制对象的大小与位置有效值位置矩形缺省值
[20206020]Units解释属性position向量的单位有效值pixels、inches、character、nor__lized、points、__ntimeters缺省值pixels控制字体与标签FontAngle字符的倾斜度有效值nor__l、italic、oblique缺省值nor__lFontName字体系列名称有效值字符串缺省值与系统有关FontSize字体大小有效值一标量缺省值与系统有关FontUnits字体大小单位有效值pixels、nor__lized、inches、__ntimeters、points缺省值pointsFontWeight文本字体的磅值有效值light、nor__l、demi、bold缺省值nor__lHorizontalAlig__ent标签字符串的对齐方式有效值left、__nter、left缺省值决定于用户界面控制的对象String用户控制界面的标签,也是列表框与弹出菜单中的项目有效值字符串控制回调函数的执行BusyAction回调函数中断方式有效值can__l、queue缺省值queueButtonDownFcn当按钮按下时执行的回调函数有效值字符串Callback控制操作有效值字符串CreateFcn在对象生成过程中执行的回调函数有效值字符串DeleteFcn在对象删除过程中执行的回调函数有效值字符串Interruptible回调函数中断的模式有效值on、off缺省值onUIContextMenu与界面控制中的对象相关的菜单(如按下鼠标右键)有效值句柄关于当前状态的一般信息ListboxTop第一个显示于列表框中的项目的索引有效值标量缺省值[1]__x最大值(与用户界面控制对象有关)有效值标量缺省值与系统有关Min最小值(与用户界面控制对象有关)有效值标量缺省值与系统有关Value用户界面控制对象的当前值有效值标量或向量缺省值与系统有关控制组件的访问HandleVisibility句柄是否可从命令窗口中与GUIs中访问有效值on、callback、off缺省值onHitTest组件是否可由鼠标单击选中有效值on、off缺省值on命令7uimenu功能生成图形窗口的菜单中的层次的菜单与下一级子菜单即增加新的菜单于已经存在的菜单后面,当一菜单项被选中时,该菜单项与它的下一级菜单也将显示也可用该命令生成与组件相关的菜单用法handle=uimenuPropertyNamePropertyValue…在当前图形窗口菜单条上用指定的属性PropertyName与相应的属性值PropertyValue创建一菜单,同时将该菜单的句柄赋给handle其中两个输入参量可以是结构数组或者是单元数组用户界面菜单的回调函数属性定义了当用户激活菜单项时,进行的响应操作uimenuPropertyNamePropertyValue…效果同上,但不返回句柄值handle=uimenuparentPropertyNamePropertyValue…生成一父菜单的子菜单,或者是生成由parent指定的相关菜单中的菜单项目若parent不是另外的用户界面菜单对象或用户界面相关菜单对象,而是一图形窗口,则系统将生成该图形窗口菜单条上的新的菜单同时将生成的菜单赋值给句柄handleuimenuparentPropertyNamePropertyValue…效果同上,但不返回菜单的句柄附表7-13列出了所有对uimenu对象有用的属性,分别按功能进行了分类每一属性名作为该属性描述的索引表7-13属性名属性名描述属性值控制控件类型与显示Checked菜单检查记号有效值on、off缺省值offForegroundColor文本的颜色有效值ColorSpec缺省值黑色
[000]Label菜单标签有效值任何字符串Separator分隔线模式有效值on、off缺省值offSelectionHighlight对象选中时是否突出显示有效值on、off缺省值onVisible用户界面菜单是否可见有效值on、off缺省值on关于对象的一般信息Ac__leratro键盘等价字符有效值任何的字符Children子菜单的句柄有效值句柄向量Enable用户界面菜单是否可用有效值on、off缺省值onParent用户界面菜单的父对象有效值句柄Tag用户指定的对象标记符有效值任何字符串Type图形对象类型有效值字符串read-only缺省值uimenuUserData用户指定数据有效值任何矩阵控制对象的位置Position用户界面菜单的相对位置有效值标量缺省值
[1]控制回调程序的执行BusyAction回调程序的中断有效值can__l、queue缺省值queueButtoDownFcn按钮按下回调程序有效值字符串Callback控制操作有效值字符串CreateFcn在对象生成期间执行的回调程序有效值字符串DeleteFcn在对象删除期间执行的回调程序有效值字符串Interruptible回调程序中断模式有效值on、off缺省值on控制对象的访问HandleVisibility是否可从命令行__问图形用户界面有效值on、callback、off缺省值onHitTest是否可用鼠标选择有效值on、off缺省值on
7.
3.2轴的产生和控制命令命令1axes功能创建坐标轴图形对象该命令是创建坐标轴图形对象的低级函数命令用法axes在当前图形窗口中用缺省的属性值创建一坐标轴图形对象axesPropertyNamePropertyValue…用参量PropertyName指定的属性名与用参量PropertyValue指定的属性值创建一坐标轴对于没有指定的属性名,系统则使用缺省的属性值axesh使已经存在的坐标轴h成为当前的坐标轴同时使坐标轴h为图形窗口中的所有子对象属性(Childrenproperty)的第一坐标轴,也使图形窗口的CurrentAxes属性为h当前坐标轴是图形函数i__ge、line、patch、su_____与text等命令输出图形对象的目的地h=axes…返回已经创建的坐标轴对象的句柄命令2cla功能清除当前坐标轴该命令在命令窗口中执行与在回调程序中执行效果是一样的,即它不能区别由callback设置的属性HandleVisibility,也就是说,当它从一回调程序中执行时,命令cla仅仅删除属性HandleVisibility为on的图形对象用法cla清除当前坐标轴中所有句柄为不隐藏(例如,图形对象属性HandleVisibility设置为on)的图形对象clareset无条件地清除当前坐标轴中所有图形对象,且重新设置坐标轴的属性,(除了属性Position和Units)命令3__a功能获取当前坐标轴句柄用法h=__a返回当前图形窗口中的坐标轴句柄若坐标轴不存在,系统则生成一坐标轴同时返回它的句柄用户不想得到上面的结果,可以输入get__f’CurrentAxes’当前坐标轴为用户创建坐标轴以下子对象的目的地有许多图形命令可以在当前坐标轴中画出图形对象,如plot,text,surf等改变了当前窗口,相应地改变了当前坐标轴
7.
3.3图形句柄操作命令命令1__o功能返回当前对象的句柄“当前对象”为最后用鼠标单击的对象,除了命令uimenus之外若鼠标没有单击到一图形对象之下的子对象,则该图形对象为“当前对象”系统会把当前图形对象的句柄存放于图形的属性CurrentO__ect之中当前图形窗口中的当前对象并非总是那些它们的回调函数,而是正在执行的对象其他函数的回调中断函数可以改变当前对象或者甚至是当前图形窗口一些回调函数,如生成命令CreateFcn、删除命令DeleteFcn与用户界面菜单命令Callback等就没有改变当前图形窗口或者当前对象用法h=__o返回当前对象的句柄给hh=__ofigure_handle返回指定窗口figure_handle中的当前对象的值命令2get功能获取对象属性用法geth返回由句柄h指定的图形对象的所有属性与相应的当前属性值;gethPropertyName返回由句柄h指定的图形对象的指定属性PropertyName的属性值m-by-nvalue__llarray=getHproperty__llarray返回由m个图形对象的n个属性值组成的m*n阶的细胞数组,其中m=lengthH,且n为指定的属性细胞数组property__llofarray中包含的属性名个数a=geth返回一结构,其中该结构的域名为该对象的属性名,结构的域名值为相应属性的当前值H必须为标量若用户没有指定输出参量,则系统将信息显示于屏幕之上a=get0Factory返回所有能由用户设置的属性的缺省定义值输出参量a为一结构数组,该结构的域名为对象的属性名,域名值为相应属性的当前值若用户没有指定输出参量,则系统将信息显示于屏幕之上a=get0FactoryO__ectTypePropertyName返回指定对象类型的指定的属性的缺省属性值输入参量FactoryO__ectTypePropertyName为一关键字,由字符Factory与对象类型(如Figure)还有属性名如Color组成FactoryFigureColora=gethDefault返回由句柄h指定的对象的所有缺省属性值输出参量a为一结构,该结构的域名为缺省值对应的属性名若用户没有指定输出参量,则系统将该结构信息显示于屏幕a=gethDefaultO__ectTypePropertyName返回对象类型的指定属性的缺省属性值输入参量DefaultO__ectTypePropertyName为一关键字,该字由字符Default与对象类型名(例如Figure)还有具体的属性名(例如Color)组成DefaultFigureColor例7-50若想获得定义于屏幕之上的图形对象属性LineWidth的缺省属性值,输入get0DefaultLineLineWidth命令3set功能设置对象的属性用法setHPropertyNamePropertyValue…用属性值PropertyValue设置关于用参量H标志的对象(一个或多个)的属性名PropertyName(一个或多个)H可以为一句柄的向量在这种情形下,命令set可以设置所有对象的属性值setHa用指定的属性值设置由H标志的对象的属性其中a为一结构数组,该结构数组的域名为对象的属性名,域名值为相应属性名的属性值setHpnpv…对由H指定的所有对象中指定的细胞数组属性名pn设置为相应的细胞数组属性值pvsetHpnm-by-n__llarray对于每m个图形对象设置n个属性值,其中m=lengthH,n为包含属性名的细胞数组pn中包含的属性名个数即允许用户对每一对象的指定的属性设置不同的属性值a=seth返回句柄h中允许用户设置的属性名与可能的属性值输出参量a为一结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值若没有指定输出参量a,则系统自动将信息显示于屏幕,h必须为标量a=set0Factory返回那些用户可以设置缺省值的所有对象的属性名,同时显示可能的属性值,输出参量a为一结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值,若没有指定输出参量a,则系统自动将信息显示于屏幕a=set0FactoryO__ectTypePropertyName返回指定根对象
(0)类型中指定的属性名O__ectTypePropertyName的所有可能的属性值输入参量是由固定的关键字Factory、对象类型(如axes)与属性名(如position等)组成a=sethDefault返回由h标记的对象上缺省设置的值,其中h必须是标量a=sethDefaultO__ectTypePropertyName返回指定对象h的类型中指定的属性名O__ectTypePropertyName的所有可能的属性值输入参量是由固定的关键字Factory、对象类型(如axes)与属性名(如position等)组成命令4reset功能重新设置图形对象的属性为它们的缺省值用法reseth重新设置由句柄h指定的图形对象的属性为系统为它们设置的初始值若h为一图形figure,该命令不能重新设置属性Position,Units,PaperPosition和PaperUnits;若h为一坐标轴axes,该命令不能重新设置属性Position和Units例7-51reset__a%重新设置当前坐标轴的属性reset__f%重新设置当前图形的属性命令5delete功能删除文件或图形对象作为一可供选择的函数,用户可从当前目录浏览器CurrentDirectorybrowser中删除文件要打开该浏览器,从__TLAB桌面上的View菜单中选择CurrentDirectory命令用法deletefilename从磁盘上删除指定的文件filename参量filename可以是绝对路径或与当前路径相关的路径名其中可以包括通配符(*)deleteh删除由句柄h指定的图形对象该命令无条件地、直接地删除对象,甚至是图形窗口deletefilename这是第一种情形的函数形式当文件名包含于字符串filename中时,使用函数形式例delete‘D:\__TLABR12\work\*.m’%将删除指定目录上的所有.m文件命令6findo__功能定位图形对象且返回它们的句柄用户可用特定的属性值与沿着指定的层次分支来限定搜索条件用法h=findo__返回根对象与它的所有的子孙对象句柄h=findo__PropertyNamePropertyValue…返回属性名PropertyName具有属性值PropertyValue的所有图形对象用户可指定一对或多对PN与PV值,对此,findo__返回满足所有条件的那些对象h=findo__o__handles…限定搜索的对象为列表于o__handles中的对象与它们子孙对象h=findo__o__handlesflatPropertyNamePropertyValue…限定搜索对象为o__handles中列出的对象,而不包含它们的子孙对象
7.
3.4图形窗口的控制命令命令1subplot功能生成与控制多个坐标轴把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的每一部分有一坐标轴,后面的图形输出于当前的部分中用法subplotmnp将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴则新的坐标轴成为当前坐标轴若p为一向量,则创建一坐标轴,包含所有罗列在p中的小窗口subploth使句柄h对应的坐标轴称为当前的,用于后面图形的输出显示subplotPosition[leftbottomwidthheight]在由4个元素指定的位置上创建一坐标轴位置元素的单位为归一化单位h=subplot…返回一新坐标的句柄于h命令2hold功能保持当前图形窗口中的图形该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象测试保持状态命令为ishold该命令可以设置当前坐标轴与当前图形的属性NextPlot若一图形窗口中有多个坐标轴,则每个坐标轴有自己的保持状态用法holdon保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形,即设置当前坐标轴属性NextPlot为add当必要的时候,坐标轴的一些属性在增加新图时还是要进行相应的改变例如,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,使能显示新图形holdoff在画新图形之前,重新设置坐标轴的属性为缺省值off是命令hold命令的缺省值设置当前坐标轴的属性NextPlot为repla__hold在on与off之间转换即在增加图形与覆盖图形之间切换当坐标轴不存在时,则生成一坐标轴同时使当前坐标轴属性NextPlot在add与repla__之间切换命令3__f功能获得当前图形窗口的句柄用法h=__f返回当前图形窗口的句柄当前窗口为由命令plot、title与surf等得到的结果若不存在图形窗口,则系统自动地生成一个,并返回它的句柄若用户想当图形窗口不存在时,也不创建新的,则输入get0CurrentFigure命令4clf功能清除当前图形窗口该命令在命令窗口中执行与在回调程序中执行效果是一样的,即它不能区别由callback设置的属性HandleVisibility,也就是说,当它从一回调程序中执行时,命令clf仅仅删除属性HandleVisibility为on的图形对象用法clf清除所有当前图形窗口与窗口中的所有那些句柄为不隐藏(例如它们的属性HandleVisibility为on)的图形对象clfreset无条件地清除当前图形窗口中所有的图形对象,且重新设置所有图形窗口属性为缺省值,除了属性Position,Units,PaperPosition,PaperUnits命令5close功能删除指定的图形窗口用法close删除当前的图形窗口closeh删除由句柄h指定的图形窗口若h为一向量或矩阵,则close全部删除其中每一分量指定的图形句柄closename删除指定名字name的窗口closeall删除所有没有隐藏的图形closeallhidden删除所有具有隐藏的图形status=close…若成功地删除了指定的对象则返回status=1,否则返回0命令6newplot功能做好开始画新图形对象的准备在高级图形m-文件的开始使用该命令,用于确定在哪一个图形窗口与坐标轴中输出图形调用命令newplot能改变当前窗口与坐标轴基本上,当要在已经存在的窗口与坐标轴中画图,有三个选项可选1.没有改变任何属性与删除任何对象,直接在当前坐标轴中增加新的图形对象;2.在画图形的对象之前,删除所有存在于当前坐标轴中的,句柄为非隐藏的对象;3.在画图形的对象之前,无条件删除所有的存在于当前坐标轴中的对象(不管句柄是否为隐藏),同时设置大部分的属性为缺省值;4.首先,newplot读取当前图形的属性NextPlot的属性值(关于该属性的含义参见figure或axes的属性表),再执行相应的动作;5.然后,newplot确定在哪一个窗口中画图,它读取当前图形的属性NextPlot的属性值,执行相应的操作用法newplot画好图形窗口与坐标轴,后面的图形命令就可以在该坐标轴内画图h=newplot效果如上,且返回当前坐标轴的句柄给h
7.4颜色与光照模式命令
7.
4.1颜色控制命令命令1color__p功能设置或获取当前色图色图为一个m*3的、元素在0到1之间的实数的矩阵,每一行为定义一个颜色的RGB向量色图矩阵的第k行定义了第k个颜色,其中__pk:=[rkgkbk]指定了组成该颜色中红色、绿色、兰色的强度用法color__p__p通过矩阵__p设置色图若矩阵__p中的元素不在
[01]区间之内,则返回一个错误在目录color中的m-文件能够生成许多色图,每一个m-文件能够接受颜色数作为函数参数,例如命令color__phsv64生成了有64种颜色的hsv色图若用户没有指定颜色数,例如命令color__phsv,生成与当前色图中颜色数相同的hsv色图__TLAB支持的色图见表7-14表7-14色图名称包含的颜色范围Cool青蓝和洋红的色度Bone带一点蓝色的灰度Flag交替为红色、白色、蓝色和黑色JetHsv的一种变形(以兰色开始和结束)Copper线性铜色度Hsv色彩饱和值(以红色开始和结束)Hot从黑色到黄色到白色Gray线性灰度Pink粉红的彩色度Prim三棱镜交替为红色、橘黄色、黄色、绿色和天蓝色Lines线性色图White全白色图Colorcube增强立方色图Autumn红色黄色阴影色图Spring洋红黄色阴影色图Summer绿色黄色阴影色图Winter兰色绿色阴影色图例7-52color__pdefault设置当前色图为缺省色图c__p=color__p获取当前色图矩阵命令2bone功能生成带淡兰色的灰度刻度化的色图用法bonem返回个一个阶数为m*3的包含“bone”的色图bone返回一个与当前色图行数相同的色图命令3cool功能生成带阴影的青色和品红的色图用法coolm返回一个阶数为m*3的包含“cool”的色图cool返回一个与当前色图行数相同的色图命令4copper功能生成线性铜__图用法copper(m)返回一个阶数为m*3的包含“copper”的色图copper返回一个与当前色图行数相同的色图命令5flag功能生成一个颜色顺序为红、白、兰、黑的色图用法flag(m)返回一个阶数为m*3的包含“flag”的色图增加m的值,会增加色图的颗粒程度flag返回一个与当前色图函数相同的色图命令6gray功能生成一个线性灰度化的色图用法gray(m)返回个一个阶数为m*3的包含灰度化的的色图gray返回一个与当前色图函数相同的色图命令7hot功能生成一个颜色顺序为黑、红、黄、白的色图用法hot(m)返回个一个阶数为m*3的包含“hot”的色图hot返回一个与当前色图函数相同的色图命令8hsv功能生成一个包含色度-饱和度值的色图一个hsv色图包含各种饱和色度颜色的色度的成分其颜色从红色到黄色、绿色、青色、蓝色、品红,最后返回红色该色图对于显示周期函数很有用处用法hsv(m)返回个一个阶数为m*3的包含hsv的色图hsv返回一个与当前色图函数相同的色图命令9jet功能不同于hsv色图的另外一种色图用法jet(m)返回个一个阶数为m*3的,与hsv(m)不同的色图,用于显示NCSA流体激光__jet返回一个与当前色图函数相同的色图命令10pink功能生成一个带柔和阴影粉红色图用法pink(m)返回一个阶数为m*3的包含“pink”的色图pink返回一个与当前色图函数相同的色图命令11pri__功能生成一个三棱镜色图如同hsv色图一样,pri__色图中的颜色使用顺序是一样的,不同的是,命令pri__重复使用它的六中颜色,而命令hsv是连续地变换它的颜色用法pri__(m)返回一个阶数为m*3的包含六种循环使用的颜色红色、橙色、黄色、绿色、蓝色、紫色pri__这种没有任何输入输出参量的形式,改变当前坐标轴中的线对象的颜色为三棱镜中的颜色
7.
4.2色图控制命令命令1brighten功能增亮或变暗色图用法brightenbeta增亮或变暗当前的色图若0beta1,则增亮色图;若-1beta0,则变暗色图改变的色图将代替原来的色图,但本质上是相同的颜色brightenhbeta对指定的句柄对象h中的子对象进行操作new__p=brightenbeta该命令没有改变当前图形的亮度,而是返回变化后的色图给new__pnew__p=brightenc__pbeta该命令没有改变指定色图c__p的亮度,而是返回变化后的色图给new__p命令2colorbar功能显示能指定颜色刻度的颜色条且调整当前坐标轴,以适应当前的颜色条用法colorbar更新最近生成的颜色条或若当前坐标轴没有一颜色条,则在右边显示一垂直的颜色条colorbarvert增加一垂直的颜色条到当前的坐标轴colorbarhoriz增加一水平的颜色条到当前的坐标轴colorbarh用坐标轴h来生成一颜色条若坐标轴的宽度大于高度,则颜色条是水平放置的h=colorbar…返回一颜色条句柄h,该句柄是一坐标轴对象colorbar…peeraxes_handle生成一与坐标轴axes-handle有关的颜色条,代替当前的坐标轴命令3contrast功能提高灰度色图的对比度该命令可以增强图像的对比度用法c__p=contrastX返回一灰度色图,该色图与当前色图有相同的维数参量c__p为生成的灰度色图c__p=contrastXm返回维数为m*3的灰度色图c__p例7-53loadclown;c__p=contrastX;i__geX;color__pc__p;命令4rgbplot功能画出色图用法rgbplotc__p画出维数为m*3的色图矩阵c__p的每一列,矩阵的第一列为红色强度,第二列为绿色强度,第三列为蓝色强度命令5diffuse功能漫反射率用法R=diffuseNxNyNzS返回曲面的漫反射率向量[NxNyNz],S为一三维向量,用于定义光源的方向;S也可以为球面坐标系中的二维向量[ThetaPhi]Lambert定律R=cosPST,其中PST为曲面法线与光源方向之间夹角命令6specular功能镜面反射率用法R=specularNxNyNzSVspread返回一曲面的镜面反射率向量[NxNyNz],向量参量S与V分别用于指定光源位置与观察点的位置它们可以为三维直角坐标系向量[xyz]或者为二维球面向量[ThetaPhi]当标准向量的方向为S+V/2,则镜面的高光效果最强第六个参量spread为镜面反射扩散系数命令7surfl功能三维带光照模式的阴影图图形的色泽取决于曲面的漫反射、镜面反射与环境光照模式用法surfl…效果与命令surf…基本上一样,除了它受光源影响的曲面之外surflZ、surflXYZ、surflZS、surflXYZS、surflXYZSK这些都是有效的使用形式若参数中有S,则为一三维向量[SxSySz],用于指定光源的方向S也可视为点坐标系下的二维向量[AZEL]S的缺省值为从当前观察方向逆时针旋转45度使用命令组cla;holdon;viewAZEL;surfl…;holdoff等可画出视角方向为AZEL的带光照模式的曲面图第五参数K=[kakdksspread]指定环境光、漫反射光、镜面反射光、扩散系数等的强弱surfl…light用LIGHT对象生成一带颜色的、带光照模式的曲面该命令可以生成与用缺省光照模式不同效果的曲面surfl…cdata指定的曲面的反射光的颜色为cdataH=surfl…返回曲面与光源的句柄图7-6图7-7图7-8图7-9图7-10图7-11图7-12图7-13图7-14图7-15图7-16图7-17图7-18图7-19图7-20图7-21图7-22图7-23图7-24图7-25图7-26图7-27图7-28图7-29图7-30图7-31图7-32图7-33图7-34图7-35图7-36图7-37图7-38图7-39图7-40图7-41图7-42图7-43图7-44图7-47随机直线图图7-48250249。