首页 教程MATLAB6.0数学手册07

教程MATLAB6.0数学手册07

举报
开通vip

教程MATLAB6.0数学手册07Matlab6.0数学手册 第7章 绘图与图形处理 第7章 绘图与图形处理 人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。MATLAB可以表达出数据的二维,三维,甚至四维的图形。通过图形的线型,立面,色彩,光线,视角等属性的控制,可把数据的内在特征表现得淋漓尽致。下面我们分别介绍图形的命令。 7.1 二维图形 7.1.1 基本平面图形命令 命令1 plot 功能 线性二维图。在线条多于一条时,若用户没有指定使用颜色,...

教程MATLAB6.0数学手册07
Matlab6.0数学手册 第7章 绘图与图形处理 第7章 绘图与图形处理 人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。MATLAB可以表达出数据的二维,三维,甚至四维的图形。通过图形的线型,立面,色彩,光线,视角等属性的控制,可把数据的内在特征表现得淋漓尽致。下面我们分别介绍图形的命令。 7.1 二维图形 7.1.1 基本平面图形命令 命令1 plot 功能 线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(current axes ColorOrder property)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axes LineStyleOrder property)定义的线型,以区别不同的线条。 用法 plot(X,Y) 当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=[x(i)],Y=[y(i)],则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分。若X,Y均为同维同型实数矩阵,X = [X(i)],Y = [Y(i)],其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i)),矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。 plot(Y) 若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中x=1:m;若y为实数矩阵,则把y按列的方向分解成几个列向量,而y 的行数为n,则plot(Y)等价于plot(X,Y)其中x=[1;2;…;n];在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。 plot(X1,Y1,X2,Y2,…),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图。若其中仅仅有Xi或Yi是矩阵,其余的为向量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配对的向量画出。 plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…) 将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色。在plot 命令中我们可以混合使用三参数和二参数的形式: plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3) plot(…,'PropertyName',PropertyValue,…) 对所有的用plot生成的line图形对象中指定的属性进行恰当的设置。 h = plot(…) 返回line图形对象句柄的一列向量,一线条对应一句柄值。 说明 参数LineSpec 功能 定义线的属性。Maltab允许用户对线条定义如下的特性: 1.线型 表7-1 定义符 - -- : -. 线型 实线(缺省值) 划线 点线 点划线 2.线条宽度 指定线条的宽度,取值为整数(单位为像素点) 3.颜色 表7-2 定义符 R(red) G(green) b(blue) c(cyan) 颜色 红色 绿色 兰色 青色 定义符 M(magenta) y(yellow) k(black) w(white) 颜色 品红 黄色 黑色 白色 4.标记类型 表7-3 定义符 + o(字母) * . x 标记类型 加号 小圆圈 星号 实点 交叉号 定义符 d ^ v > < 标记类型 棱形 向上三角形 向下三角形 向右三角形 向左三角形 定义符 s h P 标记类型 正方形 正六角星 正五角星 5.标记大小 指定标记符号的大小尺寸,取值为整数(单位为像素) 6.标记面填充颜色 指定用于填充标记符面的颜色。取值在上表。 7.标记周边颜色 指定标记符颜色或者是标记符(小圆圈、正方形、棱形、正五角星、正六角星和四个方向的三角形)周边线条的颜色。取值在上表。 在所有的能产生线条的命令中,参数LineSepc可以定义线条的下面三个属性:线型、标记符号、颜色进行设置。对线条的上述属性的定义可用字符串来定义,如:plot(x,y,'-.or') 结合x和y,画出点划线(-.),在数据点(x,y)处画出小圆圈(o),线和标记都用红色画出。其中定义符(即字符串)中的字母、符号可任意组合。若没有定义符,则画图命令plot自动用缺省值进行画图。若仅仅指定了标记符,而非线型,则plot只在数据点画出标记符。如:plot(x,y,’d’) 例7-1 >>t = 0:pi/20:2*pi; >>plot(t,t.*cos(t),'-.r*') >>hold on >>plot(exp(t/100).*sin(t-pi/2),'--mo') >>plot(sin(t-pi),':bs') >>hold off 图形结果为图7-1。 例7-2 >>plot(t,sin(2*t),'-mo', 'LineWidth',2,'MarkerEdgeColor','k',… 'MarkerFaceColor',[.49 1 .63],'MarkerSize',12) 图形结果为图7-2。 图7-1 二维曲线图 图7-2 二维图形的绘制 命令2 fplot 功能 在指定的范围limits内画出一元函数y=f(x)的图形。其中向量x的分量分布在指定的范围内,y是与x同型的向量,对应的分量有函数关系:y(i)=f(x(i))。若对应于x的值,y返回多个值,则y是一个矩阵,其中每列对应一个f(x)。例如,f(x)返回向量[f1(x),f2(x),f3(x)],输入参量x=[x1;x2;x3],则函数f(x)返回矩阵 f1(x1) f2(x1) f3(x1) f1(x2) f2(x2) f3(x2) f1(x3) f2(x3) f3(x3) 注意一点的是,函数function必须是一个m-文件函数或者是一个包含变量x,且能用函数eval计算的字符串。例如:’sin(x)*exp(2*x)’,’[sin(x),cos(x)]’,’hump(x)’。 用法 fplot('function',limits) 在指定的范围limits内画出函数名为function的一元函数图形。其中limits是一个指定x-轴范围的向量[xmin xmax]或者是x轴和y轴的范围的向量[xmin xmax ymin ymax]。 fplot('function',limits,LineSpec) 用指定的线型LineSpec画出函数function。 fplot('function',limits,tol) 用相对误差值为tol画出函数function。相对误差的缺省值为2e-3。 fplot('function',limits,tol,LineSpec) 用指定的相对误差值tol和指定的线型LineSpec画出函数function的图形。 fplot('function',limits,n) 当n>=1,则至少画出n+1个点(即至少把范围limits分成n个小区间),最大步长不超过(xmax-xmin)/n。 fplot(‘function’,lims,…) 允许可选参数tol,n和LineSpec以任意组合方式输入。 [X,Y] = fplot('function',limits,…) 返回横坐标与纵坐标的值给变量X和Y,此时fplot不画出图形。若想画出,可用命令plot(X,Y)。 […] = plot('function',limits,tol,n,LineSpec,P1,P2,…) 允许用户直接给函数function输入参数P1,P2等,其中函数functiond的定义形式为 y = function(x,P1,P2,…) 若想用缺省的tol,n或LineSpec值,只需将空矩阵([ ])传递给函数即可。 注意:fplot采用自适应步长控制来画出函数function的示意图,在函数的变化激烈的区间,采用小的步长,否则采用大的步长。总之,使计算量与时间最小,图形尽可能精确。 例7-3 >>fplot('tanh',[-2 2]) 图形结果为图7-3。 >>subplot(2,2,1);fplot('humps',[0 1]) >>subplot(2,2,2);fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi]) >>subplot(2,1,2);fplot('[tan(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1]) 图7-3 函数画图 图7-4 命令3 loglog 功能 双对数图形。 用法 loglog(Y) 若y为实数向量或矩阵,则结合y列向量的下标与y的列向量画出。若y为复数向量或矩阵,则loglog(Y)等价于loglog(real(Y),imag(Y)),在loglog的其他使用形式中将忽略Y的虚数部分。 loglog(X1,Y1,X2,Y2…) 结合Xn与Yn画出图形。若只有Xn或Yn为矩阵,另一个为向量,行向量维数等于矩阵的列数,列向量的维数等于矩阵的行数,则loglog把矩阵按向量的方向分解成向量,再与向量结合分别画出图形。 loglog(X1,Y1,LineSpec1,X2,Y2,LineSpeec2…) 按顺序取三个参数Xn,Yn, LineSpecn画出线条,其中LineSpecn指定线条的线型,标记符号和颜色。用户可以混合使用二参数和三参数形式,如: loglog(X1,Y1,X2,Y2,LineSpec2,X3,Y3) loglog(…,'PropertyName',PropertyValue,…) 对所有由loglog命令生成的图形对象句柄的属性进行设置。 h = loglog(…) 返回line图形句柄向量,每条线对应一个句柄。 例7-4 >>x = logspace(-1,2); >>loglog(x,10*exp(x),'-s') >>grid on 图7-5 命令4 semilogx 功能 x轴对数图形。若没有指定使用的颜色,当所画线条较多时,semilogx将自动使用由当前轴的ColorOrder和LineStyleOrder属性指定的颜色顺序和线型顺序来画线。 用法 semilogx(Y) %对x轴的刻度求常用对数(以10为底),而y轴为线性刻度。若y为实数向量或矩阵,则结合y列向量的下标与y的列向量画出线条;若y为复数向量或矩阵,则semilogx(Y)等价于semilogx(real(Y),imag(Y))。在semilogx的其他使用形式中,Y的虚数部分将被忽略。 semilogx(X1,Y1,X2,Y2…) %结合Xn和Yn画出线条,若其中只有xn或yn为矩阵,另外一个为向量,行向量的维数等于矩阵的列数,列向量的维数等于矩阵的行数,则按向量的方向分解矩阵,再与向量结合,分别画出线条。 semilogx(X1,Y1,LineSpec1X2,Y2,LineSpec2,…) %按顺序取三参数Xn,Yn,LineSpecn画线,参数LineSpecn指定使用的线型,标记符号和颜色。用户可以混合使用二参数和三参数形式,如: semilogx(X1,Y1,X2,Y2,LineSpec2,X3,Y3) semilogx(…,'PropertyName',PropertyValue,…) %对所有由semilogx命令生成的图形对象句柄的属性进行设置 h = semilogx(…) %返回line图形句柄向量,每条线对应一个句柄。 例7-5 >>x = 0:.1:10; >>semilogx(x,cos(10.^x)) 图形结果为图7-6。 命令5 semilogy 用法:参见semilogx命令。 命令6 fill 功能 用颜色填充二维多边形。 用法 fill(X,Y,C) 用x和y中的数据生成多边形,用c指定的颜色填充它。其中c为色图向量或矩阵。若c是行向量,则要求c的维数等于x和y 的列数,若c为列向量,则要求c的维数等于x和y的行数。 fill(X,Y,ColorSpec) 用ColorSpec指定的颜色填充由x和y定义的多边形 fill(X1,Y1,C1,X2,Y2,C2,…) 指定多个要填充的二维区域 fill(…,'PropertyName',PropertyValue) 允许用户对一个patch图形对象的某个属性设定属性值。 h = fill(…) 返回patch图形对象句柄的向量,每一个patch对象对应一个句柄。 注意: 1. 若x或y是一矩阵,另一个是向量,向量应是维数与矩阵的行数相等的列向量或是维数等于矩阵列数的行向量时,函数fill将向量复制成与矩阵同型的矩阵。函数fill将矩阵x与y中列向量中的数据生成多边形的顶点。 2. 颜色阴影类型决定于用户在参数中列出的颜色,若用户用ColorSpec指定颜色,命令fill生成平坦阴影模式(flat-shaded)多边形,同时设置补片对象(patch)的FaceColor属性为相应的RGB颜色矩阵。 3. 若用户用参量c指定所用颜色,命令fill按坐标轴属性Clim的比例缩小c中的元素,之后,c成为引用当前色图的下标矩阵。 4. 若c为行向量,命令fill生成平面阴影的多边形,c的每一元素决定由矩阵x,y的每一列定义的多边形内的颜色,每一补片对象的FaceColor属性被设置为'flat',x,y的每一行元素变成第n块补片对象的Cdata属性值,其中n为矩阵x或y中的相应的列。 5. 若c为一列向量或一矩阵,命令fill运用一线性插值法计算每一节点的颜色,以便用插值颜色填充多边形的内部。它设置补片对象的FaceColor属性为‘interp’,且在一列中的元素变成每一补片的Cdata属性值。若c为一列向量,命令fill用该向量复制成需要大小的尺寸。 例7-6 >>t = (1/16:1/8:1)'*2*pi; >>x = exp(t).*sin(t); >>y = t.*cos(t); >>fill(x,y,'k') >>grid on 图形结果为图7-7。 命令7 zoom 功能 对二维图形进行放大或缩小。放大或缩小会改变坐标轴范围。 用法 zoom on 打开交互式的放大功能。当一个图形处于交互式的放大状态时,有两种 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 来放大图形: 对于一键鼠标或二键,三键鼠标,单击坐标轴内的任意一点,可使图形放大一倍,这一操作可进行多次,直到matlab的最大显示为止;对于二键或三键的鼠标,在坐标轴内单击右键,可使图形缩小一倍,这一操作可进行多次,直到还原图形为止。对于一键鼠标,要想缩小图形,需要按住键盘上的Shift键,再单击鼠标键。 用鼠标拖出要放大的部分,系统将放大选定的区域。 zoom off 关闭交互式放大功能。 zoom out 将系统转回非放大状态,并将图形恢复原状。 zoom reset 系统将记住当前图形的放大状态,作为放大状态的设置值。以后使用zoom out或者是双击鼠标时,交互式放大状态打开,且图形并不是返回到原状,而是返回reset时的放大状态。 zoom 用于切换放大的状态:on和off。 zoom xon 只对x轴进行放大。 zoom yon 只对y轴进行放大。 zoom(factor) 用放大系数factor进行放大或缩小,而不影响交互式放大的状态。若factor>1,系统将图形放大factor倍,若0>x = [0.7 1.1 ]; y = [-2 3 1]; z = [2 5 3]; %分量不一定从小到大 >>[X_2d,Y_2d] = meshgrid(x,y) >>[X_3d,Y_3d,Z_3d] = meshgrid(x,y,z) 计算结果为: X_2d = 0.7000 1.1000 0.7000 1.1000 0.7000 1.1000 Y_2d = -2 -2 3 3 1 1 X_3d(:,:,1) = 0.7000 1.1000 0.7000 1.1000 0.7000 1.1000 X_3d(:,:,2) = 0.7000 1.1000 0.7000 1.1000 0.7000 1.1000 X_3d(:,:,3) = 0.7000 1.1000 0.7000 1.1000 0.7000 1.1000 Y_3d(:,:,1) = -2 -2 3 3 1 1 Y_3d(:,:,2) = -2 -2 3 3 1 1 Y_3d(:,:,3) = -2 -2 3 3 1 1 Z_3d(:,:,1) = 2 2 2 2 2 2 Z_3d(:,:,2) = 5 5 5 5 5 5 Z_3d(:,:,3) = 3 3 3 3 3 3 7.1.2 特殊平面图形命令 命令1 polar 功能 画极坐标图。该命令接受极坐标形式的函数rho=f(θ),在笛卡儿坐标系平面上画出该函数,且在平面上画出极坐标形式的格栅。 用法 polar(theta,rho) 用极角theta和极径rho画出极坐标图形。极角theta为从x轴到半径的单位为弧度的向量,极径rho为各数据点到极点的半径向量。 polar(theta,rho,LineSpec) 参量LineSpec指定极坐标图中线条的线型、标记符号和颜色等。 例7-8 >>t = 0:.01:2*pi; >>polar(t,sin(3*t).*cos(2*t),'--r') 图形结果为图7-8。 命令2 bar 功能 二维垂直条形图。用垂直条形显示向量或矩阵中的值。 用法 bar(Y) 若y为向量,则分别显示每个分量的高度,横坐标为1到length(y);若y为矩阵,则bar把y分解成行向量,再分别画出,横坐标为1到size(y,1),即矩阵的行数。 bar(x,Y) 在指定的横坐标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显示所有的条形。 [xb,yb] = bar(…) 返回用户可用命令plot或命令patch画出条形图的参量xb,yb。这对用户控制一个图形的显示是有用的,例如要在一个plot语句中加入装饰性的条形图等。 h = bar(…) 返回一个patch图形对象句柄的向量。每一条形对应一个句柄。 例7-9 x = -2.9:0.2:2.9; bar(x,exp(x.*sin(x))) colormap gray 图形结果为图7-9。 例7-10 subplot(2,2,4) bar(Y,1.5) title 'Width = 1.5' 图形结果为图7-10。 命令3 barh 功能 二维水平条形图。用水平条形显示向量或矩阵中的值。 用法 barh(Y) 若y为向量,则分别显示每个分量的高度,纵坐标为1到length(y);若y为矩阵,则bar把y分解成行向量,再分别画出,纵坐标为1到size(y,1),即矩阵的行数。 barh(x,Y) 在指定的纵坐标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显示所有的条形。 [xb,yb] = barh(…) 返回用户可用命令plot或命令patch画出条形图的参量xb,yb。这给用户控制一个图形的显示是有用的,例如要在一个plot语句中加入装饰性的条形图等。 h = barh(…) 返回一个patch图形对象句柄的向量。每一条形对应一个句柄。 例7-11 >>X = 1:.5:5; >>Y = exp(X).*sin(X); >>barh(Y,'stack') 图形结果为图7-11。 命令4 compass 功能 从原点画箭头图。箭头图为一显示起点为笛卡儿坐标系中的原点的二维或三维方向或向量的图形,同时在坐标系中显示圆形的分隔线。 用法 compass(X,Y) 参量x与y为同型的n维向量,则命令显示n个箭头,箭头的起点为原点,箭头的位置为[X(i),Y(i)]。 compass(Z) 参量z为n维复数向量,则命令显示n个箭头,箭头起点为原点,箭头的位置为[real(Z),imag(Z)]. compass(…,LineSpec) 用参量LineSpec指定箭头图的线型、标记符号、颜色等属性。 h = compass(…) 返回line对象的句柄给h。 例7-12 Z = magic(20).*randn(20); compass(Z) 图形结果为图7-12。 命令5 comet 功能 二维彗星图。彗星图为彗星头(一个小圆圈)沿着数据点前进的动画,彗星体为跟在彗星头后面的痕迹,轨道为沿着整个函数的实线。我们要指出的是,由命令comet生成的轨迹是使用擦除模式(EraseMode)属性的值为none,该属性使用户不能打印该图形(只能得到彗星头),且当用户改变窗口的大小时,动画将消失。 用法 comet(y) 彗星图动画显示向量y确定的路线。 comet(x,y) 彗星图动画显示向量x与y确定的路线。 comet(x,y,p) 指定彗星体的长度p*length(y),缺省的p值为0.1。 例7-13 >>t = 0:.01:2*pi; >>x = exp(sin(2*t)).*(cos(t).^2/3); >>y = t.*(sin(t).^2); >>comet(x,y); 图形结果为图7-13。 附:擦除模式(EraseMode)属性及属性值:{normal}|none|xor|background 该属性控制系统用于显示与擦除线条对象的技术。不同的擦除模式对于生成动画系列,即控制个别对象的重新显示方式,对于改进外在显示和获得理想的效果是很必要的。 表7-4 属性值 含义 Normal (缺省值) 重新显示受影响的区域,在必要的时候,进行三维 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 计算,以保证所有的对象的显示都是正确的。该模式下的图形显示是最精确的,不过也是最缓慢的,以下其他三种模式显示速度较快,不过没有执行一个完全的重显过程,因而,图形显示也不是很精确的。 none 当线条移动或改动时,该模式没有擦除线条,而是仍然显示于屏幕上。该模式下不能打印图形,因为系统没有存储前一图形的任何信息。 xor 使用异或运算(xor)计算线条颜色与当前位置下的颜色,用所得结果显示与擦除线条。该模式对于线条下面对象的颜色没有任何破坏,只是影响到线条的当前显示颜色而已。 Background 用当前坐标轴颜色重新显示线条的方式来擦除线条,若当前坐标轴颜色设置为none,则用图形的背景色来代替坐标轴颜色。该模式对于处于擦除线条后面的对象来说是有损害的,不过当前线条的颜色总是最合适的。 命令6 errorbar 功能 沿着一曲线画误差棒形图。误差棒为数据的置信水平或者为沿着曲线的偏差。在下列参数中,若为矩阵,则按列画出误差棒。 用法 errorbar(Y,E) 画出向量y,同时显示在向量y的每一元素之上的误差棒。误差棒为E(i)在曲线y上面与下面的距离,所以误差棒的长度为2*E(i)。 errorbar(X,Y,E) X,Y,E必须为同型参量。若同为向量,则画出带长度为2*E(i)、对称误差棒于曲线点(X(i),Y(i))之处;若同为矩阵,则画出带长度为E(i,j)、对称误差棒于曲面点(X(i,j),Y(i,j))之处, errorbar(X,Y,L,U) X,Y,L,U必须为同型参量。若同为向量,则在点(X(i),Y(i))处画出向下长为L(i),向上长为U(i)的误差棒;若同为矩阵,则在点(X(i,j),Y(i.j))处画出向下长为L(i,j),向上长为U(i,j)的误差棒。 errorbar(…,LineSpec) 用LineSpec指定的线型、标记符、颜色等画出误差棒。 h = errorbar(…) 返回线图形对象的句柄向量给h。 例7-14 >>X = 0:pi/10:pi; >>Y = exp(X).*sin(X); >>E = std(Y)*ones(size(X)); >>errorbar(X,Y,E) 图形结果为图7-14。 命令7 feather 功能 画出速度向量图。一羽毛图在横坐标上等距地显示向量。用户要表示各个向量的、相对于原点的向量分量。 用法 feather(U,V) 显示由参量向量u与v确定的向量,其中u包含作为相对坐标系中的x成分,v包含作为相对坐标系中的y成分。 feather(Z) 显示复数参量向量z确定的向量,等价于feather(real(Z),imag(Z))。 feather(…,LineSpec) 用参量LineSpec指定的线型、标记符号、颜色等属性画出羽毛图。 例7-15 >>th = (-90:10:90)*pi/180; >>r = 4*ones(size(th)); >>[u,v] = pol2cart(th,r); >>feather(u,v); 图形结果为图7-15。 命令8 hist 功能 二维条形直方图,可以显示出数据的分配情形。所有向量y中的元素或者是矩阵y中的列向量中的元素是根据它们的数值范围来分组的,每一组作为一个条形进行显示。条形直方图中的x轴反映了数据y中元素数值的范围,直方图的y轴显示出参量y中的元素落入该组的数目。所以y轴的范围从0到任一条形中包含元素最多的数字。直方图为一patch图形对象,若想改变图形的颜色,可以对patch对象的属性进行设置。缺省时,图形颜色是由当前色图进行控制,当前色图的第一个颜色为直方图的颜色。 用法 n = hist(Y) 把向量y中的元素放入等距的10个条形中,且返回每一个条形中的元素个数。若y为矩阵,则该命令按列对y进行处理。 n = hist(Y,x) 参量x为向量,把y中元素放到m(m=length(x))个由x中元素指定的位置为中心的条形中。 n = hist(Y,nbins) 参量nbins为标量,用于指定条形的数目。 [n,xout] = hist(…) 返回向量n与包含频率计数与条形的位置向量xout,用户可以用命令bar(xout,n)画出条形直方图。 例7-16 >>x = -5:0.1:5; >>y = randn(1000,1); >>hist(y,x) 图形结果为图7-16。 命令9 histc 功能 直方图记数 用法 n = histc(x,edges) 统计向量x中、落入向量edges(元素必须为单调的非减的)各个元素之间的元素个数。输出参量n为一与向量edges同维的向量。其中若有edges(k)>=x(i)>=edges(k+1),则n(k)增加1。X中超出向量edges 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 的范围的元素将不被统计。参量edges中可使用-inf与inf,用于包括向量x中非NaN的元素。若x为一矩阵,则对x的每一列进行上述操作。 n = histc(x,edges,dim) 对多维矩阵的第dim维进行统计。 [n,bin] = histc(…) n结果同上,同时返回矩阵下标bin。若x为向量,n(k) = sum(bin == k)。对于超出范围的数值,bin为零值。 命令10 rose 功能 画角度直方图。该直方图是一个显示所给数据的变化范围内数据的分布情形的极坐标图,所给数据分成不同的组。每一组作为一小扇形进行显示。 用法 rose(theta) 画一角度直方图,显示参数theta的数据在20个区间或更少的区间内的分布。向量theta中的角度单位为弧度,用于确定每一区间与原点的角度。每一区间的长度反映出输入参量的元素落入一区间的个数。 rose(theta,x) 用参量x指定每一区间内的元素与区间的位置,length(x)等于每一区间内元素的个数与每一区间位置角度的中间角度。例如,若x为一5维向量,rose命令分配参量theta中的元素为5部分,每一部分的角度中线由x指定。 rose(theta,nbins) 于区间 [0,2*pi] 内画出nbins个等距的小扇形。缺省值为20。 [tout,rout] = rose(…) 返回向量tout与rout,可以用polar(tout,rout)画出图形。该命令没有画任何的图形。 例7-17 >>theta = 3*pi*randn(1,30); >>rose(theta) 图形结果为图7-17。 命令11 stairs 功能 画二维阶梯图,这种图对与时间有关的数字样本系统的作图很有用处。 用法 stairs(Y) 用参量y的元素画一阶梯图。若y为向量,则横坐标x的范围从1到m=length(y),若y为矩阵,则对y的每一行画一阶梯图,其中x的范围从1到y的列数m。 stairs(X,Y) 结合x与y画阶梯图。其中要求x与y为同型的向量或矩阵。此外,x可以为行向量或为列向量,且y为有m=length(x)行的矩阵。 stairs(…,LineSpec) 用参数LineSpec指定的线型、标记符号和颜色画阶梯图。 [xb,yb] = stairs(Y) 该命令没有画图,而是返回可以用命令plot画出参量y的阶梯图的向量xb与yb。 [xb,yb] = stairs(X,Y) 该命令没有画图,而是返回可以用命令plot画出参量x,y的阶梯图的向量xb与yb。 例7-18 >>x = 0:.25:10; >>stairs(x,exp(sin(x.^2))) 图形结果为图7-18。 命令12 stem 功能 画二维离散数据的柄形图。该图用线条显示数据点与x轴的距离,一小圆圈(缺省标记)或用指定的其他标记符号与线条相连,在y轴上标记数据点的值。 用法 stem(Y) 按y元素的顺序画出柄形图,在x轴上,柄与柄之间的距离相等;若y为矩阵,则把y分成几个行向量,在同一横坐标的位置上画出一个行向量的柄图。 stem(X,Y) 在横坐标x上画出列向量y的柄形图 。其中x与y为同型的向量或矩阵,此外,x可以为行向量或列向量,而y为有m=length(x)行的矩阵。 stem(…,'fill') 指定是否对柄形图末端的小圆圈填充颜色。 stem(…,LineSpec) 用参数LineSpec指定线型,标记符号和柄图末端的小圆圈的颜色画柄图。 h = stem(…) 返回柄形图的line图形对象句柄向量。 例7-19 >>x = linspace(0,2,10); >>stem(exp(-x.^2),'fill','-.') 图形结果为图7-19。 命令13 stem3 功能 画三维离散数据的柄形图。该图用一线段显示数据离开xy平面的高度,在线段的末端用一小圆圈(缺省记号)或其他的标记符号表示数据的高度。 格式 stem3(Z) 用柄形图显示z中数据与xy平面的高度。若z为一行向量,则x与y将自动生成,stem3将在与x轴平行的方向上等距的位置上画出z的元素;若y为列向量,stem3将在与y轴平行的方向上等距的位置上画出z的元素。 stem3(X,Y,Z) 在参数x与y指定的位置上画出z的元素,其中x,y,z必须为同型的向量或矩阵。 stem3(…,'fill') 指定是否要填充柄形图末端小圆圈。 stem3(…,LineSpec) 指定线型,标记符号和末端小圆圈的颜色。 h = stem3(…) 返回柄形图的line图形对象句柄。 例7-20 [X,Y,Z] = peaks(20); stem3(X,Y,Z,’r*') 图形结果为图7-20。 命令14 pie 功能 饼形图 格式 pie(X) 用x中的数据画一饼形图,x中的每一元素代表饼形图中的一部分。X中元素X(i)所代表的扇形大小通过X(i)/sum(X)的大小来决定。若有sum(X)=1,则x中元素就直接指定了所在部分的大小;若sum(X)<1,则画出一不完整的饼形图。 pie(X,explode) 从饼形图中分离出一部分,explode为元素为零或非零的、与x相对应的向量或矩阵。与explode的非零值对应的部分将从饼形图中心分离出来。explode必须与x同型。 h = pie(…) 返回一patch与text的图形对象句柄向量h。 例7-21 >>x = [1 3 0.5 2.5 2]; >>explode = [0 1 0 0 0]; >>pie(x,explode) 图形结果为图7-21。 7.1.3 二维图形注释命令 命令1 grid 功能 给二维或三维图形的坐标面增加分隔线。该命令会对当前坐标轴的Xgrid,Ygrid,Zgrid的属性有影响。 用法 grid on 给当前的坐标轴增加分隔线。 grid off 从当前的坐标轴中去掉分隔线。 grid 转换分隔线的显示与否的状态。 grid(axes_handle,on|off) 对指定的坐标轴axes_handle是否显示分隔线。 命令2 gtext 功能 在当前二维图形中用鼠标放置文字。当光标进入图形窗口时,会变成一个大十字,表明系统正等待用户的动作。 用法 gtext('string') 当光标位于一个图形窗口内时,等待用户单击鼠标或键盘。若按下鼠标或键盘,则在光标的位置放置给定的文字“string” h = gtext('string') 当用户在鼠标指定的位置放置文字“string”后,返回一个text图形对象句柄给h。 命令3 legend 功能 在图形上添加图例。该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例。对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等。当所画的是区域(patch或surface对象)时,图例会在文字旁显示表面颜色。Matlab在一个坐标轴中仅仅显示一个图例。图例的位置有几个因素决定,像遮挡的对象等,用户可以用鼠标拖动图例到恰当的位置,双击标签可以进入标签编辑状态。 用法 legend('string1','string2',…) 用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例。 legend(h,'string1','string2',…) 用指定的文字string在一个包含于句柄向量h中的图形显示图例。用给定的数据对相应的图形对象加上图例。 legend(string_matrix) 用字符矩阵参量string​_matrix的每一行字符串作为标签。 legend(h,string_matrix) 用字符矩阵参量string​_matrix的每一行字符串作为标签给包含于句柄向量h中的相应的图形对象加标签。 legend(axes_handle,…) 给由句柄axes_handle指定的坐标轴显示图例。 legend('off') 从当前的坐标轴,或是由axes-handle指定的坐标轴中除掉图例。 legend(axes_handle,'off') 从由axes_handle指定的坐标轴中除掉图例。 legend_handle = legend 返回当前坐标轴中的图例句柄,若坐标轴中没有图例存在,则返回空向量。 legend 对当前图形中所有的图例进行刷新。 legend(legend_handle) 对由句柄legend_handle指定的图例进行刷新。 legend(…,pos) 在指定的位置pos放置图例见表7-5。 表7-5 Pos取值 pos=-1 pos=0 Pos=1 图例位置 坐标轴之外的右边 坐标轴之内,有可能遮挡部分图形 坐标轴的右上角(缺省位置) Pos取值 pos=2 pos=3 pos=4 图例位置 坐标轴的左上角 在坐标轴的左下角 坐标轴的右下角 h = legend(…) 返回图例的句柄向量。 [legend_handle,object_handles] = legend(…) 返回图例句柄,该句柄为坐标轴定义于图例中的图形对象、line对象、text对象的句柄。这些句柄允许用户对每个对象进行详细的操作。 例7-22 >>x = -pi:pi/20:pi; >>plot(x,(cos(x)).^2,'rd',x,asin(x),'-.b') >>h = legend('cos2x','asin',2); 图形结果为图7-22。 命令4 title 功能 给当前轴加上标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。每个axes图形对象可以有一个标题。标题定位于axes的上方正中央。 用法 title('string') 在当前坐标轴上方正中央放置字符串string作为标题 title(fname) 先执行能返回字符串的函数fname,然后在当前轴上方正中央放置返回的字符串作为标题 title(…,'PropertyName',PropertyValue,…) 对由命令title生成的text图形对象的属性进行设置 h = title(…) 返回作为标题的text对象句柄。 命令5 text 功能 在当前轴中创建text对象。函数text是创建text图形句柄的低级函数。可用该函数在图形中指定的位置上显示字符串。 用法 text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string text(x,y,z,'string') 在三维图形空间中的指定位置(x,y,z)上显示字符串string text(x,y,z,’string’.'PropertyName',PropertyValue…) 对引号中的文字string定位于用坐标轴指定的位置,且对指定的属性进行设置。表7-6给出文字属性名、含义及属性值。 表7-6 属性名 属性说明 属性值 定义字符串 Editing 能否对文字进行编辑 有效值:on、off 缺省值:off Interpretation TeX字符是否可用 有效值:tex、none 缺省值:tex String 字符串(包括TeX字符串) 有效值:可见字符串 放置字符串 Extent text对象的范围(位置与大小) 有效值:[left, bottom, width, height] HorizontalAlignment 文字水平方向的对齐方式 有效值:left(文本外框左边对齐,缺省对齐方式)、center(文本外框中间对齐)、right(文本外框右边对齐) 缺省值:left Position 文字范围的位置 有效值:[x,y,z]直角坐标系 缺省值:[](空矩阵) Rotation 文字对象的方位角度 有效值:标量(单位为度) 缺省值:0 Units 文字范围与位置的单位 有效值:pixels (屏幕上的像素点)、normalized (把屏幕看成一个长、宽为1的矩形)、inches(英寸)、centimeters(厘米)、points (图象点)、data 缺省值:data VerticalAlignment 文字垂直方向的对齐方式 有效值:top (文本外框顶上对齐)、cap(文本字符顶上对齐)、middle(文本外框中间对齐)、baseline(文本字符底线齐)、bottom(文本外框底线对齐) 缺省值:middle 指定文字字体 FontAngle 设置斜体文字模式 有效值:normal(正常字体)、italic(斜体字)、oblique(斜角字) 缺省值:normal FontName 设置文字字体名称 有效值:用户系统支持的字体名或者字符串FixedWidth。 缺省值为 Helvetica FontSize 文字字体大小 有效值:结合字体单位的数值 缺省值为:10 points FontUnits 设置属性FontSize的单位 有效值:points (1点=1/72英寸)、normalized(把父对象坐标轴作为一单位长的一个整体;当改变坐标轴的尺寸时,系统会自动改变字体的大小)、inches (英寸)、Centimeters(厘米)、Pixels(像素) 缺省值:points FontWeight 设置文字字体的粗细 有效值:light(细字体)、normal(正常字体)、demi(黑体字)、Bold(黑体字) 缺省值:normal 控制文字外观 Clipping 设置坐标轴中矩形的剪辑模式 有效值:on、off on:当文本超出坐标轴的矩形时,超出的部分不显示; off:当文本超出坐标轴的矩形时,超出的部分显示。 缺省值:off EraseMode 设置显示与擦除文字的模式。这些模式对生成动画系列与改进文字的显示效果很有好处。 有效值:normal、none、 xor、 background 缺省值:normal SelectionHighlight 设置选中文字是否突出显示 有效值:on、off 缺省值:on Visible 设置文字是否可见 有效值:on、off 缺省值:on Color 设置文字颜色 有效的颜色值:ColorSpec 控制对文字对象的访问 HandleVisibility 设置文字对象句柄对其他函数是否可见 有效值:on、callback、off 缺省值:on HitTest 设置文字对象能否成为当前对象(见图形CurrentObject属性) 有效值:on、off 缺省值:on 文字对象的一般信息 Children 文字对象的子对象(文字对象没有子对象) 有效值:[](即空矩阵) Parent 文字对象的父对象(通常为axes对象) 有效值:axes的句柄 Seleted 设置文字是否显示出“选中”状态 有效值:on、off 缺省值:off Tag 设置用户指定的标签 有效值:任何字符串 缺省值:’’(即空字符串) Type 设置图形对象的类型(只读类型) 有效值:字符串’text’ UserData 设置用户指定数据 有效值:任何矩阵 缺省值:[](即空矩阵) 控制回调例行执行程序 BusyAction 设置如何处理对文字回调过程中断的句柄 有效值:cancel、queue 缺省值:queue ButtonDownFcn 设置当鼠标在文字上单击时,程序做出的反应(即执行回调程序) 有效值:字符串 缺省值:' '(空字符串) CreateFcn 设置当文字被创建时,程序做出的反应(即执行的回调程序) 有效值:字符串 缺省值:' '(空字符串) DeleteFcn 设置当文字被删除(通过关闭或删除操作)时,程序做出的反应(即执行的回调程序) 有效值:字符串 缺省值:' '(空字符串) Interruptible 设置回调过程是否可中断 有效值:on、off 缺省值:on(能中断) UIContextMenu 设置与文字相关的菜单项 有效值:用户相关菜单句柄 h = text(…) 返回文字对象句柄的列向量,每一对象对应一句柄。该命令的其他使用形式中,将随意地返回这个输出参量。 例7-23 >>plot(0:pi/20:2*pi,sin(0:pi/20:2*pi)) >>text(pi,0,’Zeros Point’) >>grid on 图形结果为图7-23。 命令6 xlabel、ylabel 功能 给x、y轴贴上标签 用法 xlabel('string')、 ylabel(‘string’) 给当前轴对象中的x、y轴贴标签;注意:若再次执行xlabel或ylabel命令,则新的标签会覆盖旧的标签。 xlabel(fname)、ylabel(fname) 先执行函数fname,其返回一个字符串,然后在x、y轴旁边显示出来; xlabel(…,'PropertyName',PropertyValue,…)、ylabel(…,’PropertyName’, PropertyValue)指定轴对象中的要控制的属性名和要改变的属性值,这些都是由xlabel或ylabel创建的text图形对象的成对值; h = xlabel(…)、h = ylabel(…)返回作为标签的text对象的句柄。 7.2 三维图形 7.2.1 三维曲线、面填色命令 命令1 comet3 功能 三维空间中的彗星图。彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,彗星轨道为整个函数所画的实曲线。注意一点的是,该彗星轨迹的显示模式EraseMode为none,所以用户不能打印出彗星轨迹(只能得到一个小圆圈),且若用户调整窗口大小,则彗星会消失。 用法 comet3(z) 用向量z中的数据显示一个三维彗星 comet3(x,y,z) 显示一个彗星通过数据x,y,z确定的三维曲线。 comet3(x,y,z,p) 指定彗星体的长度为:p*length(y)。 例7-24 >>t = -20*pi:pi/50:20*pi; >>comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t); 图形的结果为图7-24。 命令2 fill3 功能 用指定的颜色填充三维多边形。阴影类型为平面型和Gouraud型。 用法 fill3(X,Y,Z,C) 填充由参数x,y和z确定多边形。若x,y或z为矩阵,fill3生成n个多边形,其中n为矩阵的列数。在必要的时候,fill3会自动连接最后一个节点和第一个节点。以便能形成封闭的多边形。参数c指定颜色,这儿c为引用当前色图的下标向量或矩阵。若c为行向量,则c的维数必须等于x的列数和y的列数,若c为列向量,则c的维数必须等于矩阵x的行数和y 的行数。 fill3(X,Y,Z,ColorSpec) 用指定的颜色ColorSpec填充由x,y和z确定的多边形。 fill3(X1,Y1,Z1,C1,X2,Y2,Z2,C2,…) 对多边形的不同区域用不同的颜色进行填充。 fill3(…,'PropertyName',PropertyValue) 允许用户对特定的patch属性进行设置。 h = fill3(…) 返回patch图形对象的句柄向量,每一块(patch)对应一个句柄。 运算规则: 1.若X,Y,Z为同型的矩阵,fill3生成X,Y,Z中相同位置的元素确定的顶点,每一列生成一个多边形。 2.若只有X,Y或Z为矩阵,则fill3由列向量参数生成可用的同型矩阵。 3.若用户对填充的颜色指定为ColorSpec,则fill3生成阴影类型为flat-shaded的多边形,且设置块(patch)的属性FaceColor为RGB颜色形式的矩阵。 4.若用户用矩阵C指定颜色,命令fill3通过坐标轴属性Clim来调整C中的元素,在引用当前色图之前,用于指定颜色坐标轴的参数比例。 5.若参数C为一行向量,命令fill3生成带平面阴影(flat-shaded)的多边形,同时设置补片对象的面颜色(FaceColor)属性为flat。向量c中的每一元素成为每一补片对象的颜色数据(CData)属性的值。 6.若参数C为一矩阵,命令fill3生成带内插颜色的多边形,同时设置多边形补片对象的FaceColor属性为interp。命令fill3采用对多边形顶点色图的下标指定的颜色采用线性内插算法,同时多边形的颜色采用对顶点颜色用内插算法得到的颜色。矩阵C的每一列元素变成对应补片对象的Cdata属性值。 7.若参数C为一列向量,命令fill3先复制C的元素,使之成为所需维数的矩阵,再按上面的方法6进行计算。 例7-25 >>X = 10*rand(4);Y=10*rand(4);Z=10*rand(4); >>C = rand(4); >>fill3(X,Y,Z,C) 图形结果可能为图7-25。 7.2.2 三维图形等高线 命令1 contour 功能 曲面的等高线图 用法 contour(z) 把矩阵z中的值作为一个二维函数的值,等高曲线是一个平面的曲线,平面的高度v是Matlab自动取的; contour(x,y,z) (x,y)是平面z=0上点的坐标矩阵,z为相应点的高度值矩阵。效果同上; contour(z,n) 画出n条等高线; contour(x,y,z,n) 画出n条等高线; contour(z,v) 在指定的高度v上画出等高线; contour(x,y,z,v) 同上; [c,h] = contour(…) 返回如同contourc命令描述的等高矩阵c和线句柄或块句柄列向量h,这些可作为clabel命令的输入参量,每条线对应一个句柄,句柄中的userdata属性包含每条等高线的高度值; contour(…,’linespec’) 因为等高线是以当前的色图中的颜色画的,且是作为块对象处理的,即等高线是一般的线条,我们可象画普通线条一样,可以指定等高线的颜色或者线形。 例7-26 >>contour(peaks(40)) 图形结果为图7-26。 命令2 clabel 功能 在二维等高线图中添加高度标签。在下列形式中,若有h出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号。 用法 clabel(C,h) 把标签旋转到恰当的角度,再插入到等高线中。只有等高线之间有足够的空间时才加入,当然这决定于等高线的尺度。 clabel(C,h,v) 在指定的高度v上显示标签h,当然要对标签做恰当的处理。 clabel(C,h,'manual') 手动设置标签。用户用鼠标左键或空格键在最接近指定的位置上放置标签,用键盘上的回车键结束该操作。当然会对标签做恰当的处理。 clabel(C) 在从命令contour生成的等高线结构c的位置上添加标签。此时标签的放置的位置是随机的。 clabel(C,v) 在给定的位置v上显示标签 clabel(C,'manual') 允许用户通过鼠标来给等高线贴标签 例7-27 >>[x,y] = meshgrid(-2:.2:2); >>z = x.*y.*exp(-x.^2-y.^2); >>[C,h] = contour(x,y,z); >>clabel(C,h); 图形结果为图7-27。 命令3 contourc 功能 低级等高线图形计算命令。该命令计算等高线矩阵c,该矩阵可用于命令contour,contour3和contourf等。矩阵z中的数值确定平面上的等高线高度值,等高线的计算结果用由矩阵z维数决定的间隔的宽度。 用法 C = contourc(Z) 从矩阵z中计算等高矩阵,其中z的维数至少为2*2阶,等高线为矩阵z中数值相等的单元。等高线的数目和相应的高度值是自动选择的。 C = contourc(Z,n) 在矩阵z中计算出n个高度的等高线。 C = contourc(Z,v) 在矩阵z中计算出给定高度向量v上计算等高线,当然向量v的维数决定了等高线的数目。若只要计算一条高度为a的等高线,输入:contourc(Z,[a,a]); C = contourc(x,y,Z) 在矩阵z中,参量x,y确定的坐标轴范围内计算等高线; C = contourc(x,y,Z,n) 从矩阵Z中,参量x与y确定的坐标范围内画出n条等高线; C = contourc(x,y,Z,v) 从矩阵Z中,参量x与y确定的坐标范围内,画在v指定的高度上指定的等高线。 命令4 contour3 功能 三维空间等高线图。该命令生成一个定义在矩形格栅上曲面的三维等高线图。 用法 contour3(Z) 画出三维空间角度观看矩阵z的等高线图,其中z的元素被认为是距离xy平面的高度,矩阵z至少为2*2阶的。等高线的条数与高度是自动选择的。若[m,n]=size(z),则x轴的范围为[1:n],y轴的范围为[1:m]。 contour3(Z,n) 画出由矩阵z确定的n条等高线的三维图。 contour3(Z,v) 在参量v指定的高度上画出三维等高线,当然等高线条数与向量v 的维数相同;若想只画一条高度为h的等高线,输入:contour3(Z,[h,h]) contour3(X,Y,Z)、contour3(X,Y,Z,n)、contour3(X,Y,Z,v) 用X与Y定义x-轴与y-轴的范围。若X为矩阵,则X(1,:)定义x-轴的范围;若Y为矩阵,则Y(:,1)定义y-轴的范围;若X与Y同时为矩阵,则它们必须同型。不论为哪种使用形式,所起的作用与命令surf相同。若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y。 contour3(…,LineSpec) 用参量LineSpec指定的线型与颜色画等高线。 [C,h] = contour3(…) 画出图形,同时返回与命令contourc中相同的等高线矩阵C,包含所有图形对象的句柄向量h;除非没有指定LineSpec参数,contour3将生成patch图形对象,且当前的colormap属性与caxis属性将控制颜色的显示。不论使用何种形式,该命令都生成line图形对象。 例7-28 >>[X,Y] = meshgrid([-2:.25:2]); >>Z = X.*exp(-X.^2-Y.^2); >>contour3(X,Y,Z,30) 图形结果为图7-28。 命令5 contourf 功能 填充二维等高线图。即先画出不同等高线,然后相邻的等高线之间用同一颜色进行填充。填充用的颜色决定于当前的色图颜色。 用法 contourf(Z) 矩阵z的等高线图,其中z理解成距平面的高度。Z至少为2*2阶的。等高线的条数与高度是自动选择的。 contourf(Z,n) 画出矩阵z的n条高度不同的等高线。 contourf(Z,v) 画出矩阵z的、由v指定的高度的等高线图。 contourf(X,Y,Z)、contourf(X,Y,Z,n)、contourf(X,Y,Z,v) 画出矩阵z的等高线图,其中X与Y用于指定x-轴与y-轴的范围。若X与Y为矩阵,则必须与Z同型。若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y。 [C,h,CF] = contourf(…)画出图形,同时返回与命令contourc中相同的等高线矩阵C,C也可被命令clabel使用;返回包含patch图形对象的句柄向量h;返回一用于填充用的矩阵CF。 例7-29 >>contourf(peaks(30),20); >>colormap gray 图形结果为图7-29。 命令6 pie3 功能 三维饼形图 用法 pie3(X) 用x中的数据画一个三维饼形图。X中的每一个元素代表三维饼形图中的一部分。 pie3(X,explode) x中的某一部分可以从三维饼形图中分离出来。explode是一个与x同型的向量或矩阵,explode中非零的元素对应x中从饼形图中分离出来的分量。 h = pie3(…) 返回一个分量为patch,surface和text图形句柄对象的向量。即每一块对应一个句柄。 注意:命令pie3将x的每一个元素在所有元素的总和中所占的比例表达出来。若x中的分量和小于1(则所有元素小于1),则认为x中的值指明三维饼形图的每一部分的大小。 例7-30 >>x = [1 3 0.5 2.5 2] >>ex = [0 1 0 0 0] >>pie3(x,ex) 图形结果为图7-30。 7.2.3 曲面与网格图命令 命令1 mesh 功能 生成由X,Y和Z指定的网线面,由C指定的颜色的三维网格图。网格图是作为视点由view(3)设定的surface图形对象。曲面的颜色与背景颜色相同(当要动画显示不透明曲面时,这时可用命令hidden控制),或者当画一个标准的可透视的网线图时,曲面的颜色就没有(命令shading控制渲染模式)。当前的色图决定线的颜色。 用法 mesh(X,Y,Z) 画出颜色由c指定的三维网格图,所以和曲面的高度相匹配, 1.若X与Y均为向量,length(X)=n,length(Y)=m,而[m,n]=size(Z),空间中的点 (X(j),Y(I),Z(I,j)) 为所画曲面网线的交点,分别地,X对应于z的列,Y对应于z的行。 2.若X与Y均为矩阵,则空间中的点 (X(I,j),Y(I,j),Z(I,j))为所画曲面的网线的交点。 mesh(Z) 由[n,m] = size(Z)得,X =1:n与Y=1:m,其中z为定义在矩形划分区域上的单值函数。 mesh(…,C) 用由矩阵c指定的颜色画网线网格图。Matlab对矩阵c中的数据进行线性处理,以便从当前色图中获得有用的颜色。 mesh(…,PropertyName’,PropertyValue, …) 对指定的属性PropertyName设置属性值PropertyValue,可以在同一语句中对多个属性进行设置。 h = mesh(…) 返回surface图形对象句柄。 运算规则: 1.数据X,Y和z的范围,或者是对当前轴的XLimMode,YLimMode和ZLimMode属性的设置决定坐标轴的范围。命令aXis可对这些属性进行设置。 2.参量c的范围,或者是对当前轴的Clim和ClimMode属性的设置(可用命令caxis进行设置),决定颜色的刻度化程度。刻度化颜色值作为引用当前色图的下标。 3.网格图显示命令生成由于把z的数据值用当前色图表现出来的颜色值。Matlab会自动用最大值与最小值计算颜色的范围(可用命令caxis auto进行设置),最小值用色图中的第一个颜色表现,最大值用色图中的最后一个颜色表现。Matlab会对数据的中间值执行一个线性变换,使数据能在当前的范围内显示出来。 例7-31 >>[X,Y] = meshgrid(-3:.125:3); >>Z = peaks(X,Y); >>mesh(X,Y,Z); 图形结果为图7-31。 命令2 surf 功能 在矩形区域内显示三维带阴影曲面图。 用法 surf(Z) 生成一个由矩阵z确定的三维带阴影的曲面图,其中 [m,n] = size(Z),而X = 1:n,Y = 1:m。高度z为定义在一个几何矩形区域内的单值函数,z同时指定曲面高度数据的颜色,所以颜色对于曲面高度是恰当的。 surf(X,Y,Z) 数据z同时为曲面高度,也是颜色数据。X和Y为定义X坐标轴和Y坐标轴的曲面数据。若X与Y均为向量,length(X)=n,length(Y)=m,而[m,n]=size(Z),在这种情况下,空间曲面上的节点为(X(I),Y(j),Z(I,j))。 surf(X,Y,Z,C) 用指定的颜色c画出三维网格图。Matlab会自动对矩阵c中的数据进行线性变换,以获得当前色图中可用的颜色。 surf(…,’PropertyName’,PropertyValue) 对指定的属性PropertyName设置为属性值PropertyValue h = surf(…) 返回一个surface图形对象句柄给变量h。 运算规则: 1.严格地讲,一个参数曲面是由两个独立的变量I、j来定义的,它们在一个矩形区域上连续变化。例如,a<=I<=b,c<=j<=d,三个变量X,Y,Z确定了曲面。曲面颜色由第四参数矩阵C确定。 2.矩形定义域上的点有如下关系: A(I-1,j) | B(I,j-1) ---- C(I,j) ---- D(I,j+1) | E(I+1,j) 这个矩形坐标方格对应于曲面上的有四条边的块,在空间的点的坐标为[X((,Y((,Z),每个矩形内部的点根据矩形的下标和相邻的四个点连接;曲面上的点只有相邻的三个点,曲面上四个角上的点只有两个相邻点,上面这些定义了一个四边形的网格图。 3.曲面颜色可以有两种方法来指定:指定每个节点的颜色或者是每一块的中心点颜色。在这种一般的设置中,曲面不一定为变量X和Y的单值函数,进一步而言,有四边的曲面块不一定为平面的,而可以用极坐标,柱面坐标和球面坐标定义曲面。 4.命令shading设置阴影模式。若模式为interp,C必须与X,Y,Z同型;它指定了每个节点的颜色,曲面块内的颜色由附近几个点的颜色用双线性函数计算出来的。若模式为facted(缺省模式)或flat,c(I,j)指定曲面块中的颜色: A(I,j)----------- B (I,j+1) | C(I,j) | C(I+1,j) --------- D(I+1,j) 在这种情形下,C可以与X,Y,和Z同型,且它的最后一行和最后一列将被忽略,换句话说,就是C的行数和列数可以比X,Y,Z少1。 5.命令surf将指定图形视角为view(3)。 6.数据X,Y,Z的范围或者通过对坐标轴的属性XlimMode,YlimMode和ZlimMode的当前设置(可以通过命令axis来设置),将决定坐标轴的标签。 7.参数C的范围或者通过对坐标轴的属性Clim和ClimMode的设置(可以通过命令caxis来设置),将决定颜色刻度化。刻度化的颜色值将作为引用当前色图的下标。 例7-32 >>[X,Y,Z] = peaks(30); >>surf(X,Y,Z) >>colormap hsv 结果图形为图7-32。 命令3 surfc 功能 在矩形区域内显示三维带阴影曲面图,且在曲面下面画出等高线。 用法 surfc(Z)、surfc(X,Y,Z)、 surfc(X,Y,Z,C)、 surfc(…,’PropertyName’,PropertyValue)、 surfc(…)、 h = surfc(…) 上面各个使用形式的曲面效果与命令surf的相同,只不过是在曲面下面增加了曲面的等高线而已。 例7-33 >>[X,Y,Z] = peaks(30); >>surfc(X,Y,Z) >>colormap hsv 图形结果为图7-33。 命令4 surfl 功能 画带光照模式的三维曲面图。该命令显示一个带阴影的曲面,结合了周围的,散射的和镜面反射的光照模式。想获得较平滑的颜色过度,要使用有线性强度变化的色图(如:gray,copper,bone,pink等)。参数X,Y,Z确定的点定义了参数曲面的“里面”和“外面”,若用户想曲面的“里面”有光照模式,只要使用: surfl(X’,Y’,Z’) 用法 surfl(Z) 以向量z的元素生成一个三维的带阴影的曲面,其中阴影模式中的光源的方位、光照系数为缺省值(见下面)。 surfl(X,Y,Z) 以矩阵X,Y,Z生成的一个三维的带阴影的曲面,其中阴影模式中的光源的方位、光照系数为缺省值(见下面)。 surfl(…,’light’) 用一个matlab光照对象(light object)生成一个带颜色、带光照的曲面,这与用缺省光照模式产生的效果不同。 surfl(…,’cdata’) 改变曲面颜色数据(color data),使曲面成为可反光的曲面。 surfl(…,s) 指定光源与曲面之间的方位s,其中s为一个二维向量[azimuth,elevation],或者三维向量[sx,sy,sz]。缺省光源方位为从当前视角开始,逆时针45℉(度)。 surfl(X,Y,Z,s,k) 指定反射常系数k,其中k为一个定义环境光(ambient light)系数(0<=ka<=1)、漫反射(diffuse reflection)系数(0〈=kb〈=1〉、镜面反射(specular reflection)系数(0〈=ks〈=1〉与镜面反射亮度(以相素为单位)等的四维向量[ka,kd,ks,shine],缺省值为k=[0.55 0.6 0.4 10]。 h = surfl(…) 返回一个曲面图形句柄向量h。 例7-34 >>[X,Y] = meshgrid(-3:1/8:3); >>Z = peaks(X,Y); >>surfl(X,Y,Z); >>shading interp >>colormap(gray); 图形结果为图7-34。 命令5 waterfall 功能 瀑布图 用法 waterfall(X,Y,Z) 用所给参数X、Y与Z的数据画一“瀑布”效果图。若X与Y都是向量,则X与Z的列相对应,Y与Z的行相对应,即length(X)=Z的列数,length(Y)=Z的行数。参数X与Y定义了x-轴与y-轴,Z定义了z-轴的高度,Z同时确定了颜色,所以颜色能恰当地反映曲面的高度。若想研究数据的列,可以输入:waterfall(Z’)或waterfall(X’,Y’,Z’) waterfall(Z) 画出一瀑布图,其中缺省地有:X=1:Z的行数,Y=1:Z的行数,且Z同时确定颜色,所以颜色能恰当地反映曲面高度。 waterfall(…,C) 用比例化的颜色值从当前色图中获得颜色,参量C决定颜色的比例,为此,必须与Z同型。系统使用一线性变换,从当前色图中获得颜色。 h = waterfall(…) 返回patch图形对象的句柄h,可用于画出图形。 例7-35 >>[X,Y,Z] = peaks(30); >>waterfall(X,Y,Z) 图形结果为图7-35。 命令6 cylinder 功能 生成圆柱图形。该命令生成一单位圆柱体的x-,y-,z-轴的坐标值。用户可以用命令surf或命令mesh画出圆柱形对象,或者用没有输出参量的形式而立即画出图形。 用法 [X,Y,Z] = cylinder 返回一半径为1、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有20个距离相同的点。 [X,Y,Z] = cylinder® 返回一半径为r、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有20个距离相同的点。 [X,Y,Z] = cylinder(r,n) 返回一半径为r、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有指定的n个距离相同的点。 cylinder(…) 没有任何的输出参量,直接画出圆柱体。 例7-36 >>t = 0:pi/10:2*pi; >>[X,Y,Z] = cylinder(2+(cos(t)).^2); >>surf(X,Y,Z); axis square 图形结果为图7-36。 命令7 sphere 功能 生成球体 用法 sphere 生成三维直角坐标系中的单位球体。该单位球体由20*20个面。 sphere(n) 在当前坐标系中画出有n*n个面的球体 [X,Y,Z] = sphere(n) 返回三个阶数为(n+1)*(n+1)的,直角坐标系中的坐标矩阵。该命令没有画图,只是返回矩阵。用户可以用命令surf(X,Y,Z)或mesh(X,Y,Z)画出球体。 例7-37 >>[X,Y,Z]=sphere; >>mesh(X,Y,Z) >>hidden off 图形结果为图7-37。 7.2.4 三维数据的其他表现形式命令 命令1 pcolor 功能 伪彩色图。该图为一矩形单元的、由参数c定义了颜色的阵列,系统通过c中的每相邻的四点定义的曲面补片而生成一伪彩色图。是从上面向下观看的“平面”曲面图。若用户使用命令shading faceted或shading flat,则每一单元的固定颜色是与之相连的角的颜色有关的。所以,C(i,j)定义了单元的地i行与地j列的颜色。C中的最后一行与最后一列都没有用上。若用户使用命令shading interp,则每一单元的颜色是对它的四个顶点的颜色进行一双线性插值后的颜色,这时c的所有元素都参加了运算。 用法 pcolor(C) 画一伪彩色图。C中的元素都线性地映射于当前色图下标。从C映射到当前的色图是由命令colormap和caxis定义的。 pcolor(X,Y,C) 在参数x和y指定的位置上画一由C确定的为彩色图。该图为一逻辑上为矩形、带二维格栅的、顶点在[X(i,j),Y(i,j)]的图形(若X和Y为矩阵时)。参量X与Y为指定格栅线的向量或矩阵。若X与Y为向量,则X对应于C的列,而y对应于C的行;若X与Y同为矩阵,则必须为同型矩阵。该命令等价于命令:surf(X,Y,0,C),观察角度为:view([0,90])。 h = pcolor(…) 返回一surface图形对象句柄于h 例7-38 >>pcolor(magic(20)) >>colormap(gray(2)) >>axis ij;axis square 图形结果为图7-38。 命令2 quiver 功能 矢量图或速度图 用法 quiver(U,V) 在范围为x =1:n和y =1:m的坐标系中显示由U和V定义的向量,而[m,n]=size(U)=size(V),这种形式是在一个几何矩形中画出U和V的,quiver命令本身会自动地画出这些向量,使之不会重叠。 quiver(X,Y,U,V) 由向量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(…,LineSpec,'filled') 对用LineSpec指定的记号进行填充 h = quiver(…) 返回每个向量图的句柄 例7-39 >>[z,x,y]=peaks(30); >>[Dx,Dy]=gradient(z,0.1,0.1); >>quiver(x,y,Dx,Dy) 图形结果为图7-39。 命令3 slice 功能 立体切片图。该命令显示通过立体图形的矩形切片图。 用法 slice(X,Y,Z,V,sx,sy,sz) 显示三元函数V=V(X,Y,Z)确定的超立体形在x-轴、y-轴与z-轴方向上的若干点(对应若干平面。即若函数V=V(X,Y,Z)中有一变量如X取一定值X0,则函数V=V(X0,Y,Z)变成一立体曲面(只不过是将该曲面通过颜色表示高度V,从而显示于一平面而已。)的切片图,各点的坐标由参量向量sx、sy与sz指定。参量X、参量Y与参量Z为三维数组,用于指定立方体V的坐标。参量X、Y与Z必须有单调的、正交的间隔(如同用命令meshgrid生成的一样)。在每一点上的颜色由对超立体 V的三维内插值确定。 slice(V,sx,sy,sz) 显示三元函数V=V(X,Y,Z)确定的超立体形在x-轴、y-轴与z-轴方向上的若干点(对应若干平面)的切片图,各点的坐标由数量向量sx、sy与sz指定。其中V为三维数组(阶数为m*n*p),缺省地有:X = 1:m、Y = 1:n、Z = 1:p。 slice(V,XI,YI,ZI) 显示参量矩阵XI、YI与ZI确定的、超立体图形的切面图。参量XI、YI与ZI定义了一曲面,同时会在曲面的点上计算超立体V的值。参量XI、YI与ZI必须为同型矩阵。 slice(X,Y,Z,V,XI,YI,ZI) 沿着由矩阵XI、YI与ZI定义的曲面画穿过超立体图形V的切片。 slice(…,'method') 指定内插值的方法。‘method’为如下方法之一:‘linear’、 ‘cubic’、‘nearest’: ‘linear’——指定使用三次线性内插值法(该状态为缺省的); ‘cubic’—— 指定使用三次立方内插值法; ‘nearest’——指定使用最近点内插值法。 h = slice(…) 返回一曲面图形对象的句柄向量h。 命令4 axis 功能 坐标轴的刻度与外在显示 用法 axis([xmin xmax ymin ymax]) 设置当前坐标轴的x-轴与y-轴的范围。 axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 设置当前坐标轴的x-轴、y-轴与z-轴的范围,当前颜色刻度范围。该命令也同时设置当前坐标轴的属性 Xlim、Ylim与Zlim为所给参数列表中的最大值和最小值。另外,坐标轴属性XlimMode、YlimMode与ZlimMode设置为‘manual’。 v = axis 返回一包含x-轴、y-轴与z-轴的刻度因子的行向量,其中v为一四维或六维向量,这取决于当前坐标为二维还是三维的。返回的值包含当前坐标轴的XLim、Ylim与Zlim属性值。 axis auto 设置系统到它的缺省动作——自动计算当前轴的范围,这取决于输入参量x,y与z的数据中的最大值与最小值。同时将当前坐标轴的属性XlimMode、YlimMode与ZlimMode设置为‘auto’用户可以指定对某一坐标轴进行自动操作。例如: axis ’auto x’ 将自动计算x-轴的范围; axis ’auto yz’ 将自动计算y-轴与z-轴的范围。 axis manual 、axis(axis) 把坐标固定在当前的范围,这样,若保持状态(hold)为on,后面的图形仍用相同界限。该命令设置了属性XLimMode、属性YLimMode与属性ZlimMode为manual。 axis tight 把坐标轴的范围定为数据的范围,即坐标轴中没有多余的部分。 axis fill 该命令用于将坐标轴的取值范围分别设置为绘图所用数据在相应方向上的最大、最小值。 axis ij 使用矩阵坐标系:坐标原点在左上角、横坐标(j-轴)的值从左到右增加,纵坐标(i-轴)的值从上到下增加。 axis xy使用笛卡儿坐标系(缺省):坐标原点在左下角、横坐标(x-轴)的值从左到右增加,纵坐标(y-轴)的值从下到上增加。 axis equal 设置坐标轴的纵横比,使在每个方向的数据单位都相同。其中x-轴、y-轴与z-轴将根据所给数据在各个方向的数据单位自动调整其纵横比。 axis image 效果与命令axis equal相同,只是图形区域刚好紧紧包围图象数据。 axis square 设置当前图形为正方形(或立方体形),系统将调整x-轴、y-轴与z-轴,使它们有相同的长度,同时相应地自动调整数据单位之间的增加量。 axis normal 自动调整坐标轴的纵横比,还有用于填充图形区域的、显示于坐标轴上的数据单位的纵横比。 表7-7显示由上面三个命令设置的坐标轴属性。 表7-7 命令 坐标轴属性 axis equal axis normal axis square axis tightequal DataAspectRatioMode [1 1 1] 没有设置 没有设置 [1 1 1] PlotBoxAspectRatio manual auto auto Manual PlotBoxAspectRatioMode [3 4 4] 没有设置 [1 1 1] Auto Stretch-to-fill 禁止 可行 禁止 禁止 axis vis3d 该命令将冻结坐标系此时的状态,以便进行旋转。 axis off 关闭所用坐标轴上的标记、格栅和单位标记。但保留由text和gtext设置的对象。 axis on 显示坐标轴上的标记、单位和格栅。 [mode,visibility,direction] = axis('state') 返回表明当前坐标轴的设置属性的三个字符串,见表7-8。 表7-8 输出参量 返回字符串 说明 Mode ‘’auto’或 ’manual’ 若XLimMode、YlimMode与ZlimMode都设置为auto,则mode为auto;若XLimMode、YlimMode或者ZlimMode都设置为manual,则mode为manual Visibility ‘’on’或’off’ Direction ‘’xy’或’ij’ 例7-40 >>x = 0:.025:pi/2; >>plot(x,exp(x).*sin(2*x),'-m<') >>axis([0 pi/2 0 5]) 图形结果为图7-40。 命令5 hidden 功能 在一网格图中显示隐含线条。隐含线条的显示,实际上是显示那些从观察角度观看没有被其他物体遮住的线条。 用法 hidden on 对当前图形打开隐含线条的显示状态,使网格图后面的线条被前面的线条遮住。设置曲面图形对象的属性FaceColor为坐标轴背景颜色。这是系统的缺省操作。 hidden off 对当前图形关闭隐含线条的显示 hidden 在两种状态on与off之间切换 例7-41 >>mesh(peaks) >>hidden off 图形结果为图7-41。 命令6 shading 功能 设置颜色色调属性。该命令控制曲面与补片等的图形对象的颜色色调。同时设置当前坐标轴中的所有曲面与补片图形对象的属性EdgeColor与FaceColor。命令shading设置恰当的属性值,这取决于曲面或补片对象是表现网格图或实曲面。 用法 shading flat 使网格图上的每一线段与每一小面有一相同颜色,该颜色由线段的末端的端点颜色确定;或由小面的、有小型的下标或索引的四个角的颜色确定。 shading faceted 带重叠的黑色网格线的平面色调模式。这是缺省的色调模式。 shading interp 在每一线段与曲面上显示不同的颜色,该颜色为通过在每一线段两边的、或者为不同小曲面之间的色图的索引或真颜色进行内插值得到的颜色。 例7-42 >>sphere(16) >>axis square >>shading flat >>title('Flat Shading') 图形结果为图7-42。 命令7 caxis 功能 颜色坐标轴刻度。命令caxis控制着对应色图的数据值的映射图。它影响下面对象之一的、用带索引的颜色数据(CData)与颜色数据映射(CDataMapping)控制的刻度的图形对象surface、patches与images;它没有影响带用颜色数据(CData)或颜色数据映射(CDataMapping)直接设置的颜色的图形对象surface、images或patches。该命令还改变坐标轴图形对象的属性Clim与ClimMode。 用法 caxis([cmin cmax]) 用指定的最大值与最小值设置颜色范围。数据值中小于cmin或大于cmax的,将分别地映射于cmin与cmax;处于cmin与cmax之间的数据将线性地映射于当前色图。 caxis auto 让系统自动地计算数据的最大值与最小值对应的颜色范围。这是系统的缺省动作。数据中的正无穷大(Inf)对应于最大颜色值;负无穷大(-Inf)对应于最小颜色值;带颜色值设置为NaN的面或者边界将不显示。 caxis manual、caxis(caxis) 冻结当前颜色坐标轴的刻度范围。这样,当hold设置为on时,可使后面的图形命令使用相同的颜色范围。 v = caxis 返回一包含当前正在使用的颜色范围的二维向量v=[cmin cmax]。 caxis(axes_handle,…) 使由参量axis_handle指定的坐标轴,而非当前坐标轴。 颜色坐标轴刻度工作原理: 使用带索引的颜色数据(Cdata)与颜色数据映射(CdataMapping)的图形对象surface、patch与image将设置成刻度化的,在每次图形渲染时,将映射颜色数据值为当前图形的颜色。当颜色数据值等于或小于cmin时,将它映射为当前色图中的第一个颜色;当颜色数据值等于或大于cmax时,将它映射为当前色图中的最后一个颜色;对于处于cmin与cmax之间的颜色数据(例如c),系统将执行下列线性转换,以获得对应当前色图(它的长度为m)中的颜色的索引(当前色图的行指标index): index = fix((C-min)/(cmax-cmin)*m)+1 例7-43 >>[X,Y,Z] = sphere; >>C = Z;surf(X,Y,Z,C) >>caxis([-1 3]) 图形结果为图7-43。 命令8 view 功能 指定立体图形的观察点。观察者(观察点)的位置决定了坐标轴的方向。用户可以用方位角(azimuth)和仰角(elevation)一起,或者用空间中的一点来确定观察点的位置。 用法 view(az,el)、view([az,el]) 给三维空间图形设置观察点的方位角。方位角az与仰角el为这两个旋转角度:做一通过视点与z-轴的平面,与xy平面有一交线,该交线与y-轴的反方向的、按逆时针方向(从z-轴的方向观察)计算的、单位为度的夹角,就是观察点的方位角az。若角度为负值,则按顺时针方向计算;在通过视点与z-轴的平面上,用一直线连接视点与坐标原点,该直线与xy平面的夹角就是观察点的仰角el。若仰角为负值,则观察点转移到曲面下面。 view([x,y,z]) 在笛卡儿坐标系中于点(x,y,z)设置视点。注意:输入参量只能是方括号的向量形式,而非数学中的点的形式。 view(2) 设置缺省的二维形式视点。其中az=0,el=90,即从z-轴上方观看。 view(3) 设置缺省的三维形式视点。其中az=-37.5,el=30。 view(T) 根据转换矩阵T设置视点。其中T为4*4阶的矩阵,如同用命令viewmtx生成的透视转换矩阵一样。 [az,el] = view 返回当前的方位角az与仰角el。 T = view 返回当前的4*4阶的转换矩阵T。 例7-44 >>peaks; >>az = 0;el = 90; >>view(az, el) 图形结果为图7-44。 命令9 viewmtx 功能 视点转换矩阵。计算一个4*4阶的正交的或透视的转换矩阵,该矩阵将一四维的、齐次的向量转换到一个二维的视平面上(如计算机平面上)。 用法 T = viewmtx(az,el) 返回一与视点的方位角az与仰角el(单位都为度)对应的正交矩阵,并没有改变当前视点。 T = viewmtx(az,el,phi) 返回一透视的转换矩阵,其中参量phi是单位为度的透视角度,为标准化立方体(单位为度)的对像视角角度与透视扭曲程度。 表7-9 Phi的值 说明 0度 正交投影 10度 类似以远距离投影 25度 类似以普通投影 60度 类似以广角投影 用户可以通过使用返回的矩阵,用命令view(T)改变视点的位置。该4*4阶的矩阵将变换四维的、同次的向量成形式为(x,y,z,w)的非标准化的向量,其中w不等于1。正交化的x-元素与y-元素组成的向量(x/w,y/w,z/w,1)为我们所需的二维向量。(注:一四维同次向量为在对应的三维向量后面增加一个1。例如:[x,y,z,1]为对应于三维空间中的点[x,y,z]的四维向量。) T = viewmtx(az,el,phi,xc) 返回以在标准化的图形立方体中的点xc为目标点的透视矩阵(就像相机正对着点xc一样),目标点xc为视角的中心点。用户可以用一三维向量xc=[xc,yc,zc]指定该中心点,每一分量都在区间[0,1]上。缺省值为xc=[0 0 0]。 命令10 surfnorm 功能 计算与显示三维曲面的法线。该命令计算用户命令surf中的曲面法线。 用法 surfnorm(Z)、surfnorm(X,Y,Z) 画出一曲面与它的法线图。其中矩阵Z用于指定曲面的高度值;X与Y为向量或矩阵,用于定义曲面的x与y部分。 [Nx,Ny,Nz] = surform(…) 返回组成曲面的法线在三个坐标轴上的投影分量Nx,Ny与Nz。 例7-45 >>[x,y,z] = cylinder(1:10); >>surfnorm(y,x,z) >>axis([-12 12 -12 12 -0.1 1]) 图形结果为图7-45。 图7-45 曲面法线图 7.3 通用图形函数命令 7.3.1 图形对象句柄命令 命令1 figure 功能 创建一个新的图形对象。图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。 用法 figure 用缺省的属性值创建一个新的图形对象。 figure('PropertyName',PropertyValue,…) 对指定的属性PropertyName用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口,对于那些没有指定的属性,则用缺省值。属性名与有效的属性值见下表。 figure(h) 1. 若h为一个已经存在的图形的句柄,则figure(h)使由h标记的图形成为当前图形,使它可见,且在屏幕上把它显示到所有图形之前。当前图形为图像输出的地方。 2. 若h不是已经存在图形的句柄,但是为一整数,则该命令生成一图形窗口,同时把该窗口的句柄赋值为h;若h不是一图形窗口的句柄,也不是一整数,则返回一错误信息。 h = figure(…) 返回图形窗口对象的句柄给h。 表7-10 属性名 属性说明 有效属性值 窗口位置 Position 图形窗口的位置与大小 有效值:四维向量[left,bottom, width,height] 缺省值:决定于显示 Units 用于解释属性Position的单位 有效值:inches(英寸) centimeters(厘米) normalized(标准化单位,认为窗口为一长宽都是1) points(点) pixels(像素) characters(字符) 缺省值:pixels 指定类型与外在显示 Color 窗口的背景颜色 有效值:ColorSpec(有效的颜色 参数) 缺省值:取决于颜色表(参见命令colordef) Menubar 转换图形窗口菜单条的“开”与“关” 有效值:none、figure 缺省值:figure Name 显示图形窗口的标题 有效值:任意字符串 缺省值:‘’(空字符串) NumberTitle 标题栏中是否显示’Figure No. n’,其中n为图形窗口的编号 有效值:on、off 缺省值:on Resize 指定图形窗口是否可以通过鼠标改变大小 有效值:on、off 缺省值:on SelectionHighlight 当图形窗口被选中时,是否突出显示 有效值:on、off 缺省值:on Visible 确定图形窗口是否可见 有效值:on、off 缺省值:on WindowStyle 指定窗口为标准窗口还是典型窗口 有效值:normal(标准窗口)、 modal(典型窗口) 缺省值:normal 控制色图 Colormap 图形窗口的色图 有效值:m*3阶的RGB颜色矩阵 缺省值:jet色图 Dithermap 用于真颜色数据以伪颜色显示的色图 有效值:m*3阶的RGB颜色矩阵 缺省值:有所有颜色的色图 DithermapMode 是否使用系统生成的抖动色图 有效值:auto、manual 缺省值:manual FixedColors 不是从色图中获得的颜色 有效值:m*3阶的RGB颜色矩阵 缺省值:无(只读模式) MinColormap 系统颜色表中能使用的最少颜色数 有效值:任一标量 缺省值:64 ShareColors 允许MATLAB共享系统颜色表中的颜色 有效值:on、off 缺省值:on 指定透明度 Alphamap 图形窗口的α色图,用于设定透明度。 有效值:m*1维向量,每一分量在[0 1]之间 缺省值:64*1维向量 指定渲染模式 BackingStore 打开或关闭屏幕像素缓冲区 有效值:on、off 缺省值:on DoubleBuffer 对于简单的动画渲染是否使用快速缓冲 有效值:on、off 缺省值:off Renderer 用于屏幕和图片的渲染模式 有效值:painters、zbuffer、OpenGL 缺省值:系统自动选择 关于图形窗口的一般信息 Children 显示于图形窗口中的任意对象句柄 有效值:句柄向量 FileName 命令guide使用的文件名 有效值:字符串 Parent 图形窗口的父对象:根屏幕 有效值:总是0(即根屏幕) Selected 是否显示窗口的“选中”状态 有效值:on、off 缺省值:on Tag 用户指定的图形窗口标签 有效值:任意字符串 缺省值:' '(空字符串) Type 图形对象的类型(只读类型) 有效值:'figure' UserData 用户指定的数据 有效值:任一矩阵 缺省值:[](空矩阵) RendererMode 缺省的或用户指定的渲染程序 有效值:auto、manual 缺省值:auto 关于当前状态的信息 CurrentAxes 在图形窗口中的当前坐标轴的句柄 有效值:坐标轴句柄 CurrentCharacter 在图形窗口中最后一个输入的字符 有效值:单个字符 CurrentOject 图形窗口中的当前对象的句柄 有效值:图形对象句柄 CurrentPoint 图形窗口中最后单击的按钮的位置 有效值:二维向量[x-coord, y-coord] SelectionType 鼠标选取类型 有效值:normal、extended、alt、open 回调程序的执行 BusyAction 指定如何处理中断调用程序 有效值:cancel、queue 缺省值:queue ButtonDownFcn 当在窗口中空闲点按下鼠标按钮时,执行的回调程序 有效值:字符串 缺省值:' '(空字符串) CloseRequestFcn 当执行命令关闭时,定义一回调程序 有效值:字符串 缺省值:closereq CreateFcn 当打开一图形窗口时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) DeleteFcn 当删除一图形窗口时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) Interruptible 定义一回调程序是否可中断 有效值:on、off 缺省值:on(可以中断) KeyPressFcn 当在图形窗口中按下一键时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) ResizeFcn 当图形窗口改变大小时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) UIContextMenu 定义与图形窗口相关的菜单 有效值:属性UIContrextmenu的句柄 WindowButtonDownFcn 当在图形窗口中按下鼠标时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) WindowButtonMotionFcn 当将鼠标移进图形窗口中时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) WindowButtonUpFcn 当在图形窗口中松开按钮时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) 访问对象的控制 IntegerHandle 指定使用整数或非整数图形句柄 有效值:on、off 缺省值:on(整数句柄) HandleVisiblity 指定图形窗口句柄是否可见 有效值:on、callback、off 缺省值:on HitTest 定义图形窗口是否能变成当前对象(参见图形窗口属性CurrentObject) 有效值:on、off 缺省值:on NextPlot 在图形窗口中定义如何显示另外的图形 有效值:replacechildren、add、replace 缺省值:add 定义鼠标指针 Pointer 选取鼠标记号 有效值:crosshair、arrow、topr、watch、topl、botl、botr、circle、cross、fleur、left、right、top、fullcrosshair、bottom 、ibeam、custom 缺省值:arrow PointerShapeCData 定义鼠标外形的数据 有效值:16*16阶矩阵 缺省值:将鼠标设置为'custom'且可见 PointerShapeHotSpot 设置鼠标活跃的点 有效值:二维向量[row,column] 缺省值:[1 1] 例7-46 >>scrsz = get(0,'ScreenSize'); >>figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2]) 执行上面的语句,会在屏幕的左上角生成一没有任何符号的窗口。 命令2 line 功能 生成线(line)对象。命令line在当前坐标轴中生成一个线对象。用户可以指定线的颜色,宽度,类型和标记符号等其他特性。 命令line 有两种形式: 1.自动循环使用颜色和类型。当用户用非正式语法来指定矩阵坐标数据:line(X,Y,Z),Matlab将循环使用由坐标轴ColorOrder和LineStyle指定的颜色顺序和类型顺序。 2.纯粹低级操作。当用户用属性名和属性值调用命令line: line(‘XData’,x,’YData’,y,’ZData’,z) Matlab将在当前用缺省的颜色(参见命令colordef的使用)画出线对象。注意一点的是,用户不能在命令line的低级形式中使用矩阵数据。 用法 line(X,Y) 在当前的坐标轴中画出由向量x和y定义的线条。若x与y为同型的矩阵,则对于x,y的每一列画出一线条。 line(X,Y,Z) 在三维空间中画出由x,y,z定义的线条。 line(X,Y,Z,'PropertyName',PropertyValue,…) 画出由参数x,y,z确定的线条,其中对指定属性PropertyName设置为PropertyValue,其他没有指定属性用缺省值。属性LineStyle和Marker参见命令plot。 line('PropertyName',PropertyValue,…) 对属性用相应的输入参数来设置而画出线条。这是命令line的低级使用形式,此时不接受矩阵参数。除了该情形,其他形式都接受矩阵参数。 h = line(…) 返回每一条线的线对象对应的句柄向量。 表7-11 属性名 说明 有效属性值 定义对象的数据 Xdata 定义线条的x-轴坐标参量 有效值:向量或矩阵 缺省值:[0 1] Ydata 定义线条的y-轴坐标参量 有效值:向量或矩阵 缺省值:[0 1] Zdata 定义线条的z-轴坐标参量 有效值:向量或矩阵 缺省值:[0 1] 定义线型与数据点标记符 LineStyle 定义线条的类型 有效值:-、--、:、、-.、 none 缺省值:-(实线) LineWidth 定义线条的宽度(以磅为单位) 有效值:一标量 缺省值:0.5磅 Marker 定义标记数据点的标记符号 有效值:13种类型之一 缺省值:none MarkerEdgeColor 定义标记颜色或可填充标记的边界颜色 有效值: auto、none、 ColorSpec 缺省值:auto MarkerFaceColor 定义封闭形标记的填充颜色 MarkerSize 定义标记大小 有效值:标量(磅) 缺省值:6(磅) 控制线条的显示 Clipping 坐标轴矩形区域是否可剪辑 有效值:on、off 缺省值:on EraseMode 定义显示与擦除线条的方法(对于动画显示) 有效值:normal、none、     xor、background 缺省值:normal SelectionHighlight 当线条被选中时,是否突出显示 有效值:on、off 缺省值:on Visible 定义线条是否可见 有效值:on、off 缺省值:on Color 定义线条颜色 对象访问的控制 HandleVisibility 定义线条句柄对其他函数是否可见 有效值:on、off、callback 缺省值:on HitTest 定义线条能否成为当前对象 有效值:on、off 缺省值:on 关于线条的一般信息 Children 线条没有子对象 有效值:[](空矩阵) Parent 线条对象的父对象为坐标轴对象 有效值:坐标轴句柄 Selected 是否显示线条的“选中”状态 有效值:on、off 缺省值:on Tag 用户定义的标签 有效值:任一字符串 缺省值:’’(空字符串) Type 图形对象的类型(只读类型) 有效值:'line' UserData 用户定义的数据 有效值:任一矩阵 缺省值:[](空矩阵) 与回调程序执行有关的属性 BusyAction 定义如何处理回调中断程序 有效值:cancel、queue 缺省值:queue ButtonDownFcn 当在线条上按下鼠标时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) CreateFcn 当生成线条时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) DeleteFcn 当删除线条时,定义一回调程序 有效值:字符串 缺省值:' '(空字符串) Interruptible 定义回调程序是否可中断 有效值:on、off 缺省值:on(可中断) UIContextMenu 定义与线条相关的菜单 有效值:UIContextMenu的句柄 例7-47 >>t = 0:pi/20:2*pi; >>hline1 = plot(t,exp(t).*sin(t),'k'); >>hline2 = line(t+.06,exp(t).*sin(t),'LineWidth',4,'Color',[.8 .8 .8]); >>set(gca,'Children',[hline1 hline2]) 生成图形为图7-46。 图7-46 命令line画的函数图 例7-48 生成随机直线图: >>line(rand(4,2),rand(4,2),rand(4,1)) >>line(rand(1,4),rand(1,4),rand(1,4)) >>line(rand(4,1),rand(4,1),rand(4,1)) >>line(rand(2,4),rand(2,4),rand(1,4)) >>line(rand(4,2),rand(4,2),rand(4,1)) 生成图形为图7-47。 命令3 patch 功能 生成补片图形对象。该命令为生成补片图形对象的低级图形函数。补片为一个或多个多边形,多边形的顶点为坐标中的点。用户可以指定补片的颜色与光照模式。 用法 patch(X,Y,C) 在当前坐标轴中增加二维带填充模式的补片。参量X,Y确定顶点的位置。若X,Y为矩阵(同型或不同型),系统按列生成多个多边形。若x,y没有定义一封闭的多边形,则命令自动地将多边形封闭。参量x与y可以定义凹的或自身交叉的多边形。可是,一个不可分隔的补片的边界自身交叉,则不能完整填充。在这种情况下,最好是将多边形分解成几个小的、自身没有交叉的多边形。参量c指定每一补片的颜色,它可以为简单的ColorSpec,每面一颜色或每一顶点一颜色。若c为三维列向量,它将被认为是一直接指定的RGB颜色。 patch(X,Y,Z,C) 生成三维的补片对象。 patch(FV) 用结构FV生成一补片。结构FV包含这些域名vertices,faces和可选的facevertecdata,这些域名对应于补片的Vertices属性、Faces属性、FaceVertexCData属性。 patch(…,C,'PropertyName',PropertyValue…) 在二维(X,Y)或三维(X,Y,Z)空间中对补片指定的属性PropertyName设置为PropertyValue。 patch('PropertyName',PropertyValue…) 对所有指定的多个属性PropertyName设置为相应的值PropertyValue。该命令形式可以使用户免除颜色的指定,因为系统将使用缺省的面颜色和边界颜色,除非用户准确地对属性FaceColor与EdgeColor进行设置。该命令形式也允许用户通过对属性Faces与Vertices的设置来代替x-,y-与z-轴的输入。 handle = patch(…) 返回命令patch生成的补片对象句柄。 说明 函数patch不象其他的高级的区域生成函数,例如函数fill或area,它没有 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 图形窗口与坐标轴的属性NextPlot的设置情形。它只是简单地在当前坐标轴中添加补片对象而已。 有两种指定颜色的补片属性名: (1)Cdata——当指定x-,y-与z-轴坐标(XData,YData,ZData)时使用; (2)FaceVertexCData——当指定多边形的顶点与连接矩阵时使用。 以上两个属性接受颜色数据作为索引颜色或者是真颜色(RGB)。其中索引颜色数据 能代表当前色图的直接索引或者代表映射到整个色图的线性数据的比例数值。 命令4 surface 功能 生成面对象。该命令是生成面图形对象的低级函数。面对象为由矩阵元素的A(I,j)所在的行下标I为x-坐标,所在的列下标j为y-坐标,元素值为z-坐标确定的点生成的空间多边形。 用法 surface(Z) 画出由矩阵z确定的曲面,其中z为定义在一几何矩形区域上的单值函数。 surface(Z,C) 画出颜色由c指定的、面由z指定的空间曲面。 surface(X,Y,Z) 曲面由参数x,y,z确定,颜色参数c=z,因此颜色能恰当地反映曲面的高度。 surface(X,Y,Z,C) 曲面由参数x,y,z确定,颜色由参数c确定。 Surface(x,y,Z) 参数x与y为向量,若[m,n]=size(z),则要求length(x)=n,length(y)=m,面上的点由(x(j),y(i),z(I,j))确定。 Surface(x,y,Z,C) 曲面确定如上情形,颜色由参数c确定。 surface(…'PropertyName',PropertyValue,…) 对指定的曲面属性PropertyName指定为PropertyValue,对曲面进行细微控制。 h = surface(…) 返回生成面对象的句柄。 命令5 image 功能 显示图片对象。该命令通过对矩阵c中每一个元素(每一元素作为引用图形色图下标或直接给出RGB值)的解释而生成一个图片对象。Image命令有两种使用格式: 1.一个调用命令newplot的高级函数,可以确定在何处放置图片与坐标轴的范围为刚好围住图片;使刚生成的图片放置在坐标轴的刻度线与格栅线之上;属性Ydir设置为rervse;属性View为[0 90]。 2.一个增加图片到当前坐标轴的低级命令,而没有调用命令newplot,在低级使用形式中,只能对指定属性进行设置操作。 用户在命令的输入参量中可以输入属性名/属性值,结构数组,细胞数组等。 用法 image(C) 把C作为一图片进行显示。C中的每一个元素指定了一个“图片”矩形中的相应部分的颜色。 image(x,y,C) 在(x,y)确定的位置上画C的元素。其中x,y都为2维矩阵,分别指定x轴与y轴的范围,其效果与image(C)相同,只不过是进行了恰当的比例缩放。 image(x,y,C,'PropertyName',PropertyValue,…) 该形式为指定属性名/属性值的高级使用形式,在执行该命令之前,先执行命令newplot。 image('PropertyName',PropertyValue,…) 该形式为低级使用形式,它只接受属性名/属性值的输入。 handle = image(…) 返回刚生成的图片对象的句柄。用户可以从上面的任何形式的调用后获得图片句柄。 例7-49 >>load clown >>image(X,'CDataMapping','scaled') >>colormap(map) 图形结果为图7-48。 命令6 uicontrol 功能 生成用户控制图形对象(用户界面控制)。也通过该命令运行图形用户界面。当对象被选中时,一般会执行相应的操作。系统支持多种控件,每一种都有不同的作用: · 校验框——当单击检验框时,会执行一操作。该组件对于提供用户多个独立的选择是很有用的。要激活一校验框,只需用鼠标单击该组件即可,且选中的状态在组件上显示出来。 · 可编辑文本框——允许用户输入与修改文本文字的区域。当用户想把文字作为 输入时,可使用该组件。若一可编辑文本框有焦点,则单击文本框的菜单栏不会执行任何操作。因此,在单击菜单条后,语句get(edit_handle,’String’)并没有返回当前编辑框中的内容。因为系统必须执行回调函数来改变属性 string的值,即使屏幕上显示的文字已经改变。 · 框架——该组件为一封闭的、可见的、图形窗口区域。框架能使一用户图形界面中相关的控制组件能容易理解。框架没有相关的回调程序。只有控制组件能在框架中显示。框架不是透明的,因此用户定义的组件先后顺序决定了组件是否被框架遮住或可见。属性Stacking order决定了控制组件的显示顺序:第一个定义的组件最先显示,后面定义的控制组件则覆盖已经存在的组件。若用户要用一框架包围一些组件,则必须第一个定义框架。 · 列表框——显示一些项目的列表(用命令string设置),且允许用户选择一个或多个项目。属性Min与Max控制着选择的模式。属性Value显示可选择的项目与包含着字符串列表中项目的索引;对于选择了多个项目则用向量表示。在任何的能改变属性Value值的、鼠标松开的操作之后,系统MATLAB将马上执行列表框的回调函数。因此,用户有必要增加一“Done”按钮,用于推迟当要多次选择项目时的操作。在执行列表框回调函数Callback属性之前,列表框中项目的选择有单击或双击之分,对应于将图形窗口属性SelectionType设置为normal或open。 · 弹出菜单——当组件被按下时,打开且显示一选择列表(用命令string设置)。当没有打开时,该组件显示当前的选择项。该组件对于用户想给其他用户提供一系列的互斥的选择项,又不想占用太多的区域。 · 普通按钮——当该组件被按下时,将执行一操作。要激活一按钮,只需在按钮上按下鼠标按钮。 · 单选按钮——该组件与校验框相类似,但它包含几个互斥的、而且相关的选项(例如在任意时刻,只能选择一个状态)。要激活某一单选按钮,只需在该组件上按下鼠标即可。被选中的组件同时显示出来。 · 滑块——该组件允许用户通过移动某一范围之内的滑块来输入一指定的数值。用户要移动一滑块,只需在滑块上按下鼠标不放,且在滑块方向上移动;或者是在滑槽内单击鼠标;或者是单击滑块条上的箭头。当松开鼠标后,滑块所在位置将与一数值对应。用户可以设置滑块的最大值、最小值与当前值等。 · 静态文本框——显示文本行。静态文本经常作为其他控制对象标签,以提供其他用户相关信息,或者是显示一滑块的数值。其他用户不能交互地改变静态文本,因此对于静态文本,没有相关的回调函数。 · 触发按钮——当该组件被单击且显示出它们的状态(on或者off)时,控制是否执行回调函数。 用法 handle = uicontrol(parent) 在父对象parent上生成一用户图形控制界面。用户界面控制对象都是图形窗口的子对象,所以当窗口中没有坐标轴时,同样可以放置控制组件于图形窗口中。 handle = uicontrol(…,'PropertyName',PropertyValue,…) 参量PropertyName为属性名,参量PropertyValue可为结构数组或者为单元数组,同时随意地返回刚生成的对象的句柄。当然用户可以通过命令set与get来设置与询问生成对象的属性值。 附:表7-12列出所有的用于命令uicontrol对象的属性名。每一属性名当作一描述该属性的链接。 表7-12 属性名 属性名含义 属性值 控制控件类型与显示 BackgroundColor 对象的背景颜色 有效值:ColorSpec 缺省值:与系统有关 Cdata 显示于对象之上的真颜色图片 有效值:矩阵 ForegroundColor 文本字体的颜色 有效值:ColorSpec 缺省值:[0 0 0](黑色) SelectionHighlight 当对象被选中时突出显示 有效值:on、off 缺省值:on String 用户控制界面的标签,也是列表框与弹出菜单中的项目 有效值:任意有效的字符串 Visible 用户界面控制是否可见 有效值:on、off 缺省值:on 关于控件对象的一般信息 Children 用户界面控制界面没有子对象 Enable 用户界面控制是否可用 有效值:on、inactive、off 缺省值:on Parent 用户界面控制对象的父对象 有效值:图形窗口标量句柄 Selected 对象是否为选中状态 有效值:on、off 缺省值:off SliderStep 滑块步长尺度 有效值:二维向量 缺省值:[0.001 0.1] Style 用户界面控制对象的类型 有效值:pushbutton、edit、togglebutton、slider、text、radiobutton、popupmenu 、listbox、frame 缺省值:pushbutton Tag 由用户指定的对象的标记符 有效值:任意有效字符串 TooltipString 对象的工具提示 有效值:任意有效字符串 Type 图形对象的类型 有效值:字符串(只读) 缺省值:uicontrol UserData 用户指定的数据 有效值:矩阵 控制控件对象的位置 Position 用户界面控制对象的大小与位置 有效值:位置矩形 缺省值:[20 20 60 20] Units 解释属性position向量的单位 有效值:pixels、inches、character、normalized、points、centimeters 缺省值:pixels 控制字体与标签 FontAngle 字符的倾斜度 有效值:normal、italic、oblique 缺省值:normal FontName 字体系列名称 有效值:字符串 缺省值:与系统有关 FontSize 字体大小 有效值:一标量 缺省值:与系统有关 FontUnits 字体大小单位 有效值:pixels、normalized 、inches、centimeters、points 缺省值:points FontWeight 文本字体的磅值 有效值:light、normal、demi、bold 缺省值:normal HorizontalAlignment 标签字符串的对齐方式 有效值:left、center、left 缺省值:决定于用户界面控制的对象 String 用户控制界面的标签,也是列表框与弹出菜单中的项目 有效值:字符串 控制回调函数的执行 BusyAction 回调函数中断方式 有效值:cancel、queue 缺省值:queue ButtonDownFcn 当按钮按下时执行的回调函数 有效值:字符串 Callback 控制操作 有效值:字符串 CreateFcn 在对象生成过程中执行的回调函数 有效值:字符串 DeleteFcn 在对象删除过程中执行的回调函数 有效值:字符串 Interruptible 回调函数中断的模式 有效值:on、off 缺省值:on UIContextMenu 与界面控制中的对象相关的菜单(如按下鼠标右键) 有效值:句柄 关于当前状态的一般信息 ListboxTop 第一个显示于列表框中的项目的索引 有效值:标量 缺省值:[1] Max 最大值(与用户界面控制对象有关) 有效值:标量 缺省值:与系统有关 Min 最小值(与用户界面控制对象有关) 有效值:标量 缺省值:与系统有关 Value 用户界面控制对象的当前值 有效值:标量或向量 缺省值:与系统有关 控制组件的访问 HandleVisibility 句柄是否可从命令窗口中与GUIs中访问 有效值:on、callback、off 缺省值:on HitTest 组件是否可由鼠标单击选中 有效值:on、off 缺省值:on 命令7 uimenu 功能 生成图形窗口的菜单中的层次的菜单与下一级子菜单。即增加新的菜单于已经存在的菜单后面,当一菜单项被选中时,该菜单项与它的下一级菜单也将显示。也可用该命令生成与组件相关的菜单。 用法 handle = uimenu('PropertyName',PropertyValue,…) 在当前图形窗口菜单条上用指定的属性PropertyName与相应的属性值PropertyValue创建一菜单,同时将该菜单的句柄赋给handle。其中两个输入参量可以是结构数组或者是单元数组。用户界面菜单的回调函数属性定义了当用户激活菜单项时,进行的响应操作。 uimenu('PropertyName',PropertyValue,…) 效果同上,但不返回句柄值。 handle = uimenu(parent,'PropertyName',PropertyValue,…) 生成一父菜单的子菜单,或者是生成由parent指定的相关菜单中的菜单项目。若parent不是另外的用户界面菜单对象或用户界面相关菜单对象,而是一图形窗口,则系统将生成该图形窗口菜单条上的新的菜单。同时将生成的菜单赋值给句柄handle。 uimenu(parent,'PropertyName',PropertyValue,…) 效果同上,但不返回菜单的句柄。 附:表7-13列出了所有对uimenu对象有用的属性,分别按功能进行了分类。每一属性名作为该属性描述的索引。 表7-13 属性名 属性名描述 属性值 控制控件类型与显示 Checked 菜单检查记号 有效值:on、off 缺省值:off ForegroundColor 文本的颜色 有效值:ColorSpec 缺省值:黑色[0 0 0] Label 菜单标签 有效值:任何字符串 Separator 分隔线模式 有效值:on、off 缺省值:off SelectionHighlight 对象选中时是否突出显示 有效值:on、off 缺省值:on Visible 用户界面菜单是否可见 有效值:on、off 缺省值:on 关于对象的一般信息 Acceleratro 键盘等价字符 有效值:任何的字符 Children 子菜单的句柄 有效值:句柄向量 Enable 用户界面菜单是否可用 有效值:on、off 缺省值:on Parent 用户界面菜单的父对象 有效值:句柄 Tag 用户指定的对象标记符 有效值:任何字符串 Type 图形对象类型 有效值:字符串read-only 缺省值:uimenu UserData 用户指定数据 有效值:任何矩阵 控制对象的位置 Position 用户界面菜单的相对位置 有效值:标量 缺省值:[1] 控制回调程序的执行 BusyAction 回调程序的中断 有效值:cancel、queue 缺省值:queue ButtoDownFcn 按钮按下回调程序 有效值:字符串 Callback 控制操作 有效值:字符串 CreateFcn 在对象生成期间执行的回调程序 有效值:字符串 DeleteFcn 在对象删除期间执行的回调程序 有效值:字符串 Interruptible 回调程序中断模式 有效值:on、off 缺省值:on 控制对象的访问 HandleVisibility 是否可从命令行上访问图形用户界面 有效值:on、callback、off 缺省值:on HitTest 是否可用鼠标选择 有效值:on、off 缺省值:on 7.3.2 轴的产生和控制命令 命令1 axes 功能 创建坐标轴图形对象。该命令是创建坐标轴图形对象的低级函数命令。 用法 axes 在当前图形窗口中用缺省的属性值创建一坐标轴图形对象。 axes('PropertyName',PropertyValue,…) 用参量'PropertyName'指定的属性名与用参量PropertyValue指定的属性值创建一坐标轴。对于没有指定的属性名,系统则使用缺省的属性值。 axes(h) 使已经存在的坐标轴h成为当前的坐标轴。同时使坐标轴h为图形窗口中的所有子对象属性(Children property)的第一坐标轴,也使图形窗口的CurrentAxes属性为h。当前坐标轴是图形函数image、line、patch、surface与text等命令输出图形对象的目的地。 h = axes(…) 返回已经创建的坐标轴对象的句柄。 命令2 cla 功能 清除当前坐标轴。该命令在命令窗口中执行与在回调程序中执行效果是一样的,即它不能区别由callback设置的属性HandleVisibility,也就是说,当它从一回调程序中执行时,命令cla仅仅删除属性HandleVisibility为on的图形对象。 用法 cla 清除当前坐标轴中所有句柄为不隐藏(例如,图形对象属性HandleVisibility设置为on)的图形对象。 cla reset 无条件地清除当前坐标轴中所有图形对象,且重新设置坐标轴的属性,(除了属性Position和Units)。 命令3 gca 功能 获取当前坐标轴句柄。 用法 h=gca 返回当前图形窗口中的坐标轴句柄。若坐标轴不存在,系统则生成一坐标轴同时返回它的句柄。用户不想得到上面的结果,可以输入get(gcf,’CurrentAxes’)。 当前坐标轴为用户创建坐标轴以下子对象的目的地。有许多图形命令可以在当前坐标轴中画出图形对象,如:plot,text,surf等。改变了当前窗口,相应地改变了当前坐标轴。 7.3.3 图形句柄操作命令 命令1 gco 功能 返回当前对象的句柄。“当前对象”为最后用鼠标单击的对象,除了命令uimenus之外。若鼠标没有单击到一图形对象之下的子对象,则该图形对象为“当前对象”。系统会把当前图形对象的句柄存放于图形的属性CurrentObject之中。当前图形窗口中的当前对象并非总是那些它们的回调函数,而是正在执行的对象。其他函数的回调中断函数可以改变当前对象或者甚至是当前图形窗口。一些回调函数,如生成命令CreateFcn、删除命令DeleteFcn与用户界面菜单命令Callback等就没有改变当前图形窗口或者当前对象。 用法 h = gco 返回当前对象的句柄给h。 h = gco(figure_handle) 返回指定窗口figure_handle中的当前对象的值。 命令2 get 功能 获取对象属性。 用法 get(h) 返回由句柄h指定的图形对象的所有属性与相应的当前属性值; get(h,'PropertyName') 返回由句柄h指定的图形对象的指定属性PropertyName的属性值。 = get(H,) 返回由m个图形对象的n个属性值组成的m*n阶的细胞数组,其中m=length(H),且n为指定的属性细胞数组中包含的属性名个数。 a = get(h) 返回一结构,其中该结构的域名为该对象的属性名,结构的域名值为相应属性的当前值。H必须为标量。若用户没有指定输出参量,则系统将信息显示于屏幕之上。 a = get(0,'Factory') 返回所有能由用户设置的属性的缺省定义值。输出参量a为一结构数组,该结构的域名为对象的属性名,域名值为相应属性的当前值。若用户没有指定输出参量,则系统将信息显示于屏幕之上。 a = get(0,'FactoryObjectTypePropertyName') 返回指定对象类型的指定的属性的缺省属性值。输入参量FactoryObjectTypePropertyName为一关键字,由字符Factory与对象类型(如:Figure)还有属性名(如:Color)组成:FactoryFigureColor a = get(h,'Default') 返回由句柄h指定的对象的所有缺省属性值。输出参量a为一结构,该结构的域名为缺省值对应的属性名。若用户没有指定输出参量,则系统将该结构信息显示于屏幕。 a = get(h,'DefaultObjectTypePropertyName') 返回对象类型的指定属性的缺省属性值。输入参量DefaultObjectTypePropertyName为一关键字,该字由字符Default与对象类型名(例如:Figure)还有具体的属性名(例如:Color)组成:DefaultFigureColor 例7-50 若想获得定义于屏幕之上的图形对象属性LineWidth的缺省属性值,输入:get(0,'DefaultLineLineWidth') 命令3 set 功能 设置对象的属性。 用法 set(H,'PropertyName',PropertyValue,…) 用属性值'PropertyValue'设置关于用参量H标志的对象(一个或多个)的属性名'PropertyName'(一个或多个)。H可以为一句柄的向量。在这种情形下,命令set可以设置所有对象的属性值。 set(H,a) 用指定的属性值设置由H标志的对象的属性。其中a为一结构数组,该结构数组的域名为对象的属性名,域名值为相应属性名的属性值。 set(H,pn,pv…) 对由H指定的所有对象中指定的细胞数组属性名pn设置为相应的细胞数组属性值pv。 set(H,pn,) 对于每m个图形对象设置n个属性值,其中m=length(H),n为包含属性名的细胞数组pn中包含的属性名个数。即允许用户对每一对象的指定的属性设置不同的属性值。 a= set(h) 返回句柄h中允许用户设置的属性名与可能的属性值。输出参量a为一结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值。若没有指定输出参量a,则系统自动将信息显示于屏幕,h必须为标量。 a= set(0,'Factory') 返回那些用户可以设置缺省值的所有对象的属性名,同时显示可能的属性值,输出参量a为一结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值,若没有指定输出参量a,则系统自动将信息显示于屏幕。 a= set(0,'FactoryObjectTypePropertyName')返回指定根对象(0)类型中指定的属性名ObjectTypePropertyName的所有可能的属性值。输入参量是由固定的关键字Factory、对象类型(如axes)与属性名(如position等)组成。 a= set(h,'Default') 返回由h标记的对象上缺省设置的值,其中h必须是标量。 a= set(h,'DefaultObjectTypePropertyName') 返回指定对象h的类型中指定的属性名ObjectTypePropertyName的所有可能的属性值。输入参量是由固定的关键字Factory、对象类型(如axes)与属性名(如position等)组成。 命令4 reset 功能 重新设置图形对象的属性为它们的缺省值。 用法 reset(h) 重新设置由句柄h指定的图形对象的属性为系统为它们设置的初始值。若h为一图形figure,该命令不能重新设置属性Position,Units,PaperPosition和PaperUnits;若h为一坐标轴axes,该命令不能重新设置属性Position和Units。 例7-51 reset(gca) %重新设置当前坐标轴的属性。 reset(gcf) %重新设置当前图形的属性。 命令5 delete 功能 删除文件或图形对象。作为一可供选择的函数,用户可从当前目录浏览器(Current Directory browser)中删除文件。要打开该浏览器,从MATLAB桌面上的View菜单中选择Current Directory命令。 用法 delete filename 从磁盘上删除指定的文件filename。参量filename可以是绝对路径或与当前路径相关的路径名。其中可以包括通配符(*)。 delete(h) 删除由句柄h指定的图形对象。该命令无条件地、直接地删除对象,甚至是图形窗口。 delete('filename') 这是第一种情形的函数形式。当文件名包含于字符串filename中时,使用函数形式。 例: delete(‘D:\MATLABR12\work\*.m’) % 将删除指定目录上的所有.m文件。 命令6 findobj 功能 定位图形对象且返回它们的句柄。用户可用特定的属性值与沿着指定的层次分支来限定搜索条件。 用法 h = findobj返回根对象与它的所有的子孙对象句柄。 h = findobj('PropertyName',PropertyValue,…) 返回属性名PropertyName具有属性值PropertyValue的所有图形对象。用户可指定一对或多对PN与PV值,对此,findobj返回满足所有条件的那些对象。 h = findobj(objhandles,…) 限定搜索的对象为列表于objhandles中的对象与它们子孙对象。 h = findobj(objhandles,'flat','PropertyName',PropertyValue,…) 限定搜索对象为objhandles中列出的对象,而不包含它们的子孙对象。 7.3.4 图形窗口的控制命令 命令1 subplot 功能 生成与控制多个坐标轴。把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。每一部分有一坐标轴,后面的图形输出于当前的部分中。 用法 subplot(m,n,p) 将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。则新的坐标轴成为当前坐标轴。若p为一向量,则创建一坐标轴,包含所有罗列在p中的小窗口。 subplot(h) 使句柄h对应的坐标轴称为当前的,用于后面图形的输出显示。 subplot('Position',[left bottom width height]) 在由4个元素指定的位置上创建一坐标轴。位置元素的单位为归一化单位。 h = subplot(…) 返回一新坐标的句柄于h。 命令2 hold 功能 保持当前图形窗口中的图形。该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。测试保持状态命令为ishold。该命令可以设置当前坐标轴与当前图形的属性NextPlot。若一图形窗口中有多个坐标轴,则每个坐标轴有自己的保持状态。 用法 hold on 保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形,即设置当前坐标轴属性NextPlot为add。当必要的时候,坐标轴的一些属性在增加新图时还是要进行相应的改变。例如,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,使能显示新图形。 hold off 在画新图形之前,重新设置坐标轴的属性为缺省值。off是命令hold命令的缺省值。设置当前坐标轴的属性NextPlot为replace。 hold 在on与off之间转换。即在增加图形与覆盖图形之间切换。当坐标轴不存在时,则生成一坐标轴。同时使当前坐标轴属性NextPlot在add与replace之间切换。 命令3 gcf 功能 获得当前图形窗口的句柄。 用法 h = gcf 返回当前图形窗口的句柄。当前窗口为由命令plot、title与surf等得到的结果。若不存在图形窗口,则系统自动地生成一个,并返回它的句柄。若用户想当图形窗口不存在时,也不创建新的,则输入:get(0,'CurrentFigure') 命令4 clf 功能 清除当前图形窗口。该命令在命令窗口中执行与在回调程序中执行效果是一样的,即它不能区别由callback设置的属性HandleVisibility,也就是说,当它从一回调程序中执行时,命令clf仅仅删除属性HandleVisibility为on的图形对象。 用法 clf 清除所有当前图形窗口与窗口中的所有那些句柄为不隐藏(例如它们的属性HandleVisibility为on)的图形对象。 clf reset 无条件地清除当前图形窗口中所有的图形对象,且重新设置所有图形窗口属性为缺省值,除了属性Position,Units,PaperPosition,PaperUnits。 命令5 close 功能 删除指定的图形窗口。 用法 close 删除当前的图形窗口。 close(h) 删除由句柄h指定的图形窗口。若h为一向量或矩阵,则close全部删除其中每一分量指定的图形句柄。 close name 删除指定名字name的窗口。 close all 删除所有没有隐藏的图形。 close all hidden 删除所有具有隐藏的图形。 status = close(…) 若成功地删除了指定的对象则返回status=1,否则返回0。 命令6 newplot 功能 做好开始画新图形对象的准备。在高级图形m-文件的开始使用该命令,用于确定在哪一个图形窗口与坐标轴中输出图形。调用命令newplot能改变当前窗口与坐标轴。基本上,当要在已经存在的窗口与坐标轴中画图,有三个选项可选: 1.没有改变任何属性与删除任何对象,直接在当前坐标轴中增加新的图形对象; 2.在画图形的对象之前,删除所有存在于当前坐标轴中的,句柄为非隐藏的对象; 3.在画图形的对象之前,无条件删除所有的存在于当前坐标轴中的对象(不管句柄是否为隐藏),同时设置大部分的属性为缺省值; 4.首先,newplot读取当前图形的属性NextPlot的属性值(关于该属性的含义参见figure或axes的属性表),再执行相应的动作; 5.然后,newplot确定在哪一个窗口中画图,它读取当前图形的属性NextPlot的属性值,执行相应的操作。 用法 newplot 画好图形窗口与坐标轴,后面的图形命令就可以在该坐标轴内画图。 h = newplot 效果如上,且返回当前坐标轴的句柄给h。 7.4 颜色与光照模式命令 7.4.1 颜色控制命令 命令1 colormap 功能 设置或获取当前色图。色图为一个m*3的、元素在0到1之间的实数的矩阵,每一行为定义一个颜色的RGB向量。色图矩阵的第k行定义了第k个颜色,其中 map(k,:)=[r(k) g(k) b(k)]指定了组成该颜色中红色、绿色、兰色的强度。 用法 colormap(map) 通过矩阵map设置色图。若矩阵map中的元素不在[0 1]区间之内,则返回一个错误。在目录color中的m-文件能够生成许多色图,每一个m-文件能够接受颜色数作为函数参数,例如命令colormap(hsv(64))生成了有64种颜色的hsv色图。若用户没有指定颜色数,例如命令colormap(hsv),生成与当前色图中颜色数相同的hsv色图。MATLAB支持的色图见表7-14。 表7-14 色图名称 包含的颜色范围 Cool 青蓝和洋红的色度 Bone 带一点蓝色的灰度 Flag 交替为红色、白色、蓝色和黑色 Jet Hsv的一种变形(以兰色开始和结束) Copper 线性铜色度 Hsv 色彩饱和值(以红色开始和结束) Hot 从黑色到黄色到白色 Gray 线性灰度 Pink 粉红的彩色度 Prim 三棱镜。交替为红色、橘黄色、黄色、绿色和天蓝色 Lines 线性色图 White 全白色图 Colorcube 增强立方色图 Autumn 红色黄色阴影色图 Spring 洋红黄色阴影色图 Summer 绿色黄色阴影色图 Winter 兰色绿色阴影色图 例7-52 colormap('default') 设置当前色图为缺省色图。 cmap = colormap 获取当前色图矩阵。 命令2 bone 功能 生成带淡兰色的灰度刻度化的色图。 用法 bone(m) 返回个一个阶数为m*3的包含“bone”的色图。 bone 返回一个与当前色图行数相同的色图。 命令3 cool 功能 生成带阴影的青色和品红的色图。 用法 cool(m) 返回一个阶数为m*3的包含“cool”的色图。 cool 返回一个与当前色图行数相同的色图。 命令4 copper 功能 生成线性铜色色图。 用法 copper(m)返回一个阶数为m*3的包含“copper”的色图。 copper 返回一个与当前色图行数相同的色图。 命令5 flag 功能 生成一个颜色顺序为红、白、兰、黑的色图。 用法 flag(m)返回一个阶数为m*3的包含“flag”的色图。增加m的值,会增加色图的颗粒程度。 flag 返回一个与当前色图函数相同的色图。 命令6 gray 功能 生成一个线性灰度化的色图。 用法 gray(m)返回个一个阶数为m*3的包含灰度化的的色图。 gray 返回一个与当前色图函数相同的色图。 命令7 hot 功能 生成一个颜色顺序为黑、红、黄、白的色图。 用法 hot(m)返回个一个阶数为m*3的包含“hot”的色图。 hot 返回一个与当前色图函数相同的色图。 命令8 hsv 功能 生成一个包含色度-饱和度值的色图。一个hsv色图包含各种饱和色度颜色的色度的成分。其颜色从红色到黄色、绿色、青色、蓝色、品红,最后返回红色。该色图对于显示周期函数很有用处。 用法 hsv(m)返回个一个阶数为m*3的包含hsv的色图。 hsv 返回一个与当前色图函数相同的色图。 命令9 jet 功能 不同于hsv色图的另外一种色图。 用法 jet(m)返回个一个阶数为m*3的,与hsv(m)不同的色图,用于显示NCSA流体激光图片。 jet 返回一个与当前色图函数相同的色图。 命令10 pink 功能 生成一个带柔和阴影粉红色图。 用法 pink(m)返回一个阶数为m*3的包含“pink”的色图。 pink 返回一个与当前色图函数相同的色图。 命令11 prism 功能:生成一个三棱镜色图。如同hsv色图一样,prism色图中的颜色使用顺序是一样的,不同的是,命令prism重复使用它的六中颜色,而命令hsv是连续地变换它的颜色。 用法 prism(m)返回一个阶数为m*3的包含六种循环使用的颜色:红色、橙色、黄色、绿色、蓝色、紫色。 prism 这种没有任何输入输出参量的形式,改变当前坐标轴中的线对象的颜色为三棱镜中的颜色。 7.4.2 色图控制命令 命令1 brighten 功能 增亮或变暗色图。 用法 brighten(beta) 增亮或变暗当前的色图。若0>load clown; >>cmap = contrast(X); >>image(X); >>colormap(cmap); 命令4 rgbplot 功能 画出色图。 用法 rgbplot(cmap) 画出维数为m*3的色图矩阵cmap的每一列,矩阵的第一列为红色强度,第二列为绿色强度,第三列为蓝色强度。 命令5 diffuse 功能 漫反射率。 用法 R = diffuse(Nx,Ny,Nz,S) 返回曲面的漫反射率向量[Nx,Ny,Nz],S为一三维向量,用于定义光源的方向;S也可以为球面坐标系中的二维向量[Theta,Phi]。 Lambert定律:R = cos(PST),其中PST为曲面法线与光源方向之间夹角。 命令6 specular 功能 镜面反射率。 用法 R = specular(Nx,Ny,Nz,S,V,spread) 返回一曲面的镜面反射率向量[Nx,Ny,Nz],向量参量S与V分别用于指定光源位置与观察点的位置。它们可以为三维直角坐标系向量[x,y,z]或者为二维球面向量[Theta,Phi]。当标准向量的方向为(S+V)/2,则镜面的高光效果最强。第六个参量spread为镜面反射扩散系数。 命令7 surfl 功能 三维带光照模式的阴影图。图形的色泽取决于曲面的漫反射、镜面反射与环境光照模式。 用法 surfl(…)效果与命令surf(…)基本上一样,除了它受光源影响的曲面之外。 surfl(Z)、surfl(X,Y,Z)、surfl(Z,S)、surfl(X,Y,Z,S)、surfl(X,Y,Z,S,K) 这些都是有效的使用形式。若参数中有S,则为一三维向量[Sx,Sy,Sz],用于指定光源的方向。S也可视为点坐标系下的二维向量[AZ,EL]。S的缺省值为从当前观察方向逆时针旋转45度。使用命令组cla;hold on;view(AZ,EL);surfl(…);hold off等可画出视角方向为(AZ,EL)的带光照模式的曲面图。第五参数K=[ka,kd,ks, spread]指定环境光、漫反射光、镜面反射光、扩散系数等的强弱。 surfl(…,'light') 用LIGHT对象生成一带颜色的、带光照模式的曲面。该命令可以生成与用缺省光照模式不同效果的曲面。 surfl(…,'cdata') 指定的曲面的反射光的颜色为cdata。 H = surfl(…) 返回曲面与光源的句柄。 图7-35 图7-34 图7-33 图7-32 图7-31 图7-30 图7-29 图7-28 图7-27 图7-26 图7-25 图7-24 图7-23 图7-22 图7-21 图7-20 图7-19 图7-18 图7-17 图7-16 图7-15 图7-36 图7-14 图7-13 图7-12 图7-11 图7-9 图7-10 图7-8 图7-7 图7-6 图7-47 随机直线图 � EMBED Word.Picture.8 ��� � EMBED Word.Picture.8 ��� � EMBED Word.Picture.8 ��� 图7-37 图7-38 图7-39 图7-40 图7-41 图7-42 图7-43 图7-44 图7-48 230 229 _1055312952.doc _1055313056.doc _1055312915.doc
本文档为【教程MATLAB6.0数学手册07】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_095975
暂无简介~
格式:doc
大小:3MB
软件:Word
页数:0
分类:互联网
上传时间:2018-09-05
浏览量:7