《MATLAB课程PPT第六章.ppt》由会员分享,可在线阅读,更多相关《MATLAB课程PPT第六章.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 编程进阶编程进阶 6.1 6.1 句柄图形句柄图形 句柄图形句柄图形是一种面向对象的图形系统概念,它是建立计算机是一种面向对象的图形系统概念,它是建立计算机图形的必要成分。图形的必要成分。6.1.1 句柄图形的结构层次句柄图形的结构层次 句柄图形基于这样的概念:一幅图的每一组成部分是一个对象,句柄图形基于这样的概念:一幅图的每一组成部分是一个对象,每一个对象有一系列句柄和它相关,每一个对象有可以设置和改变每一个对象有一系列句柄和它相关,每一个对象有可以设置和改变的属性。的属性。由图形命令产生的每一部分都是图形对象。它们包括图形窗口由图形命令产生的每一部分都是图形对象。它们包括图形
2、窗口(图形),还有坐标轴、线条、文本等组成部分,以及其它交互式(图形),还有坐标轴、线条、文本等组成部分,以及其它交互式设备,如菜单、界面等。这些对象按父对象和子对象组成层次结构。设备,如菜单、界面等。这些对象按父对象和子对象组成层次结构。这种层次关系如下图所示:这种层次关系如下图所示:建立图形对象的函数表建立图形对象的函数表建立图形对象函数建立图形对象函数建立的图形对象建立的图形对象axes(坐标轴)坐标轴)直角坐标系的坐标轴直角坐标系的坐标轴figure(图形对象)图形对象)显示图形的窗口显示图形的窗口light(光源)光源)在在坐标轴内光源的方向坐标轴内光源的方向line(线条)线条)依
3、照指定的顺序,把坐标数据用直线段依照指定的顺序,把坐标数据用直线段连接成的线条连接成的线条patch(补片)补片)按按指定的方式填充多边形指定的方式填充多边形text(文本)文本)位于图形窗口的文本字符串位于图形窗口的文本字符串uicontrol(用户界面控件)用户界面控件)可可编程的用户界面设备,如按钮、列表编程的用户界面设备,如按钮、列表框、对话框等框、对话框等uimenu(用户界面菜单)用户界面菜单)图形窗口上部的可编程菜单图形窗口上部的可编程菜单6.1.2 6.1.2 访问对象句柄访问对象句柄 句柄实际上就是分配给每个对象的数字标识。每次创建一句柄实际上就是分配给每个对象的数字标识。每
4、次创建一个对象时,就为它建立一个唯一的句柄。个对象时,就为它建立一个唯一的句柄。计算机屏幕作为根对象,它的句柄一般是计算机屏幕作为根对象,它的句柄一般是0;图形窗口的句;图形窗口的句柄为整数;其它对象句柄是柄为整数;其它对象句柄是 MATLAB 满精度的浮点数。满精度的浮点数。1 1、获取图形对象的句柄、获取图形对象的句柄函函 数数功功 能能gcf获取当前图形窗口的句柄获取当前图形窗口的句柄gca获取当前坐标轴的句柄获取当前坐标轴的句柄gco获取当前对象的句柄获取当前对象的句柄gcbo获取当前正在执行调用的对象的句柄获取当前正在执行调用的对象的句柄gcbf获取包括正在执行调用的对象的图形的句柄
5、获取包括正在执行调用的对象的图形的句柄 6.1.2 6.1.2 访问对象句柄访问对象句柄 2、查找对象、查找对象 函数可以快速遍历对象层并获取指定了属性值的对象句柄。该函数可以快速遍历对象层并获取指定了属性值的对象句柄。该函数有如下几种调用方式:函数有如下几种调用方式:1)h=findobj(propertyname,propertyvalue,):在所有的对象层中查找符合指定属性值的对象,并返回其句在所有的对象层中查找符合指定属性值的对象,并返回其句柄个变量柄个变量h;2)h=findobj(ObjectHandle,propertyname,propertyvalue,):把查找范围限制在
6、句柄把查找范围限制在句柄 ObjectHandle 指定的对象及其子对指定的对象及其子对象中;象中;3)h=findobj(ObjectHandles,flat,propertyname,propertyvalue,把查找范围限制在句柄把查找范围限制在句柄 ObjectHandle 指定的对象中,但不指定的对象中,但不包括及其子对象;包括及其子对象;4)h=findobj:返回根对象和所有子对象的句柄;返回根对象和所有子对象的句柄;5)h=findobj(ObjectHandles):返回返回 ObjectHandle 指定的对象和指定的对象和其所有子对象的句柄。其所有子对象的句柄。6.1.3
7、 6.1.3 图形对象的属性和设置图形对象的属性和设置 所有的图形对象都有属性,正是通过设定这些属性来定义或所有的图形对象都有属性,正是通过设定这些属性来定义或修改图形的特征。每个不同的对象都有和它相关的属性,可以改修改图形的特征。每个不同的对象都有和它相关的属性,可以改变这些属性而不影响同类型或不同类型的其它对象。变这些属性而不影响同类型或不同类型的其它对象。对象属性包括属性名和与之相应的值,属性名是字符串,而对象属性包括属性名和与之相应的值,属性名是字符串,而且,只要用足够多的字符来唯一地标识一个属性名即可。且,只要用足够多的字符来唯一地标识一个属性名即可。1、get 函数:获取指定对象的
8、属性值,其用法如下:函数:获取指定对象的属性值,其用法如下:1)propertyvalue=get(H,propertyName):获取句柄为获取句柄为H 的对象中名为的对象中名为propertyName 的属性值;的属性值;2)get(h):返回句柄为返回句柄为 h 的对象的所有属性名及其当前的取值,的对象的所有属性名及其当前的取值,要求要求 h 只能是标量;只能是标量;6.1.3 6.1.3 图形对象的属性和设置图形对象的属性和设置3)3)PropertyValuePropertyValue=get(h):=get(h):返回一个结构,结构的每个域名就是句柄为返回一个结构,结构的每个域名就
9、是句柄为h h的对象的属性名,的对象的属性名,每个域又包括属性的值,每个域又包括属性的值,h h为标量;为标量;4)4)PropertyValuePropertyValue=get(0,Factory=get(0,Factory)对于所有类型的对象,返回其所有可以由用户设置缺省值的对于所有类型的对象,返回其所有可以由用户设置缺省值的属性的属性的“出厂值出厂值”;5)5)PropertyValuePropertyValue=get(h,Default=get(h,Default):):返回缺省的属性值,句柄必须是标量。返回缺省的属性值,句柄必须是标量。6.1.3 6.1.3 图形对象的属性和设置
10、图形对象的属性和设置2、set 函数函数:设置对象的属性,其调用方法有:设置对象的属性,其调用方法有:1)set(H,PropertyName,PropertyValue):把句柄为把句柄为H的对象中名为的对象中名为“PropertyName”的属性值设置为的属性值设置为PropertyValue,句柄可以是向量;句柄可以是向量;2)set(h,a):是结构,其域名就是对象的属性名,属性值包括是结构,其域名就是对象的属性名,属性值包括3)set(H,PN,PV):PN是维数组,其中的元素为需要设置的属性名,是维数组,其中的元素为需要设置的属性名,PV中的元素是要设置的属性值,把在数组中指定的所
11、有对象的属性中的元素是要设置的属性值,把在数组中指定的所有对象的属性设置为中的指定值。设置为中的指定值。4)set(H,PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,):同时设置多个属性值;同时设置多个属性值;6.1.3 6.1.3 图形对象的属性和设置图形对象的属性和设置2、set 函数函数:设置对象的属性,其调用方法有:设置对象的属性,其调用方法有:5)A=set(H,PropertyName)或或 set(H,PropertyName):返回或显示句柄为返回或显示句柄为H的对象的指定属性的值;的对象的指定属性的值;6)
12、A=set(H)或或 set(H):返回或显示句柄为返回或显示句柄为H的对象的所有属性和可能的取值;的对象的所有属性和可能的取值;7)set(h,DefaultObjectTypePropertyName,PropertyValue):设置对象属性的缺省值。设置对象属性的缺省值。6.2 图形对象属性编辑器图形对象属性编辑器6.2.1 6.2.1 图形窗口的交互操作方式图形窗口的交互操作方式6.3 6.3 编程设计菜单编程设计菜单 MATLAB 的菜单可分为一次性菜单和永久性菜单。的菜单可分为一次性菜单和永久性菜单。一次性菜单是指在程序运行期间有效的菜单,程序运行结束,一次性菜单是指在程序运行期
13、间有效的菜单,程序运行结束,一次性菜单便随之消失;永久性菜单是指一经建立便永久存在的菜一次性菜单便随之消失;永久性菜单是指一经建立便永久存在的菜单,除非用单,除非用 delete 或或 set 命令将其删除,永久性菜单能随时响应用命令将其删除,永久性菜单能随时响应用户的鼠标单击操作,不受程序的限制。户的鼠标单击操作,不受程序的限制。6.3.1 一次性菜单一次性菜单 建立一次性菜单的指令是建立一次性菜单的指令是 menu,其调用格式其调用格式:k=menu(菜单名菜单名,菜单菜单1,菜单菜单2,菜单菜单n)6.3.2 永久性菜单永久性菜单 建立永久性菜单的函数是建立永久性菜单的函数是uimenu
14、uimenu 。一、函数一、函数 uimenu 的用法:的用法:函数函数 uimenu 的的调用格式:调用格式:1)h=uimenu(PropertyName1,Value1,PropertyName2,Value2,):在当前图形窗口顶部的菜单条上建立菜单,同时返回该菜在当前图形窗口顶部的菜单条上建立菜单,同时返回该菜单的句柄;单的句柄;2)h=uimenu(Parent,):参数参数 Parent 指定菜单的上一级菜单句柄,或是图形窗口句指定菜单的上一级菜单句柄,或是图形窗口句柄。柄。6.3.2 永久性菜单永久性菜单 常用的菜单对象包括的属性及其取值见下表:常用的菜单对象包括的属性及其取值
15、见下表:属属 性性取取 值值Label(含有菜单项标记文本串含有菜单项标记文本串)字符串字符串Callback(菜单项的回调程序菜单项的回调程序)字符串字符串Enable(菜单项是否处于可选状态菜单项是否处于可选状态)on(可选可选)off(不可选不可选)Separator(菜单项之间的分隔线菜单项之间的分隔线)on(分隔线在菜单项之上分隔线在菜单项之上)off(不画分隔线)不画分隔线)Position(uimeni 对象的相对位置对象的相对位置)标量标量 6.3.2 永久性菜单永久性菜单 常用的菜单对象属性的设置:常用的菜单对象属性的设置:(1)Label 和和 Callback 属性:属性
16、:属性属性Label 是在是在菜单项上显示的标注文本,且在文本中同时可设菜单项上显示的标注文本,且在文本中同时可设置该菜单项的快捷键:把符号置该菜单项的快捷键:把符号“&”放在标注字符串中用于快捷放在标注字符串中用于快捷键的字符前,执行该菜单项时就可以用键的字符前,执行该菜单项时就可以用“Alt+该字符该字符”来完成;来完成;属性属性Callback用来设置菜单项的回调程序。用来设置菜单项的回调程序。(2)Enable 属性属性 -设置有效状态设置有效状态 (3)Separator 属性属性-设置分隔条,在菜单项前添加分隔符,设置分隔条,在菜单项前添加分隔符,使菜单的层使菜单的层 次更加清晰次
17、更加清晰 6.3.2 永久性菜单永久性菜单 (4)Checked 属性属性-设置复选标志设置复选标志 (5)Position属性属性-设置菜单项的相对位置设置菜单项的相对位置2、用、用函数函数 uimenu 设计菜单设计菜单6.4 6.4 编程建立控件编程建立控件6.4.1 控件及其属性控件及其属性 控件是按钮、单选框、复选框等具有一定的控制作用的实体控件是按钮、单选框、复选框等具有一定的控制作用的实体对象的总称,不同类型的控件属性名不同,但它们都是对象的总称,不同类型的控件属性名不同,但它们都是 uicontrol 对象,都由函数对象,都由函数 uicontrol 来建立,函数来建立,函数
18、uicontrol 的用法和函数的用法和函数 uimenu相同。相同。下面介绍几个重要的属性:下面介绍几个重要的属性:1)Style 属性:属性:此属性表示控件的种类,属性值列举如下表:此属性表示控件的种类,属性值列举如下表:pushbutton按钮按钮radiobutton单选框单选框checkbox复选框复选框edit可编辑文本框可编辑文本框text文本框文本框slider滑动条滑动条frame框架框架listbox滚动框滚动框popupmenu列表框列表框:6.4.1 控件及其属性控件及其属性 2)String 属性属性 String 属性是控件的名称,它的值就是显示在控件上的字属性是控
19、件的名称,它的值就是显示在控件上的字符串。符串。3)Position 属性属性 Position 属性决定了控件的位置和大小,它的值是一个四维属性决定了控件的位置和大小,它的值是一个四维向量向量 left,bottom,width,height.4)Callback 属性属性 Callback 属性是控件的事件,决定了控件被选择后,计算属性是控件的事件,决定了控件被选择后,计算机将要执行什么操作,实现什么功能。机将要执行什么操作,实现什么功能。5)Value 属性属性 Value 属性反映了控件的选择状态,一般,属性反映了控件的选择状态,一般,Value 属性值等属性值等于于0,表示控件处于未
20、选状态表示控件处于未选状态;等于等于1,表示控件处于被选状态。表示控件处于被选状态。6.4.1 控件及其属性控件及其属性6)FontSize 属性属性 FontSize 属性是控件字符串的字体大小,其默认值为属性是控件字符串的字体大小,其默认值为8。7)Enable 属性属性 Enable 属性决定控件是否可用,默认值是属性决定控件是否可用,默认值是 on,即控件是可即控件是可用的。用的。8)HorizontalAlignment 属性属性 HorizontalAlignment 属性是指控件字符串在控件上的对齐属性是指控件字符串在控件上的对齐方式,其默认值为方式,其默认值为Center,即中
21、间对齐,此外,也可将其值设即中间对齐,此外,也可将其值设为为 Left 和和 Right,以实现字符串的左对齐和右对齐。以实现字符串的左对齐和右对齐。6.4.2 6.4.2 按钮按钮 按钮的按钮的 Style 属性值为属性值为 pushbotton,制作按钮时,也可制作按钮时,也可以不指明以不指明 Style 属性值。属性值。6.4.3 6.4.3 文本框和可编辑文本框文本框和可编辑文本框 文本框和可编辑文本框的作用是在图形窗口中显示文本,文本框和可编辑文本框的作用是在图形窗口中显示文本,文本框的文本框的 Style 属性值是属性值是 text ,可编辑文本框的可编辑文本框的 Style 属性
22、值属性值为为 edit.6.4.4 6.4.4 单选框单选框 在某些情况下,计算机要求用户从多个选项中选择一个,在某些情况下,计算机要求用户从多个选项中选择一个,而不能选择多个,这时一般用单选框。每个单选框都对应一个而不能选择多个,这时一般用单选框。每个单选框都对应一个选项,实现相应的功能。选项,实现相应的功能。单选框的单选框的 Style 属性值为属性值为 radiobutton.6.4.5 复选框复选框几个有用的指令:几个有用的指令:1)str=str2mat(string1,string2,stringn):对输入的对输入的 n 个字符串个字符串 string1,string2,stri
23、ngn 进行整进行整理,用添加空格的方法使每个字符串的字符数都等于最长字理,用添加空格的方法使每个字符串的字符数都等于最长字符串的字符数。经整理后的每一个字符串构成矩阵符串的字符数。经整理后的每一个字符串构成矩阵 str 的一的一个相应的行向量。个相应的行向量。2)eval(string):输入参数输入参数 string 是一个字符串,它代表一个是一个字符串,它代表一个 MATLAB 指指令,令,eval(string)指令其实就是执行与指令其实就是执行与 string 对应的指令。对应的指令。例:假设例:假设 string=grid on,则则 eval(string)指令等效于指令等效于g
24、rid on 指令,指令,eval 指令常用于处理由其它指令所产生的字符串。指令常用于处理由其它指令所产生的字符串。6.4.5 复选框复选框3)3)feval(string,x1,x2,xn)feval(string,x1,x2,xn)string string 代表一个函数,是输入参数。代表一个函数,是输入参数。例如:假设例如:假设 string=axis,x=-1 0 1 string=axis,x=-1 0 1,则则 feval(string,x)feval(string,x)和和 feval(string,-1 0 1)feval(string,-1 0 1)均等效于均等效于 axis
25、(-1 0 1)axis(-1 0 1)6.4.6 6.4.6 滚动框和列表框滚动框和列表框 滚动框和列表框的选项个数由滚动框和列表框的选项个数由 String 属性决定,若属性决定,若String 属性的值为属性的值为String1,String2,Stringn,则选则选项个数为项个数为 n,这里要求,字符串这里要求,字符串 String1、String2 Stringn 的的字符数必须相等,可通过字符数必须相等,可通过 str2mat 指令来实现。指令来实现。滚动框和列表框的滚动框和列表框的 Value 属性值是属性值是 1n(n是选项的个数)是选项的个数)之间的任一整数,默认值为之间的任一整数,默认值为1,若,若 Value 属性值等于属性值等于 i(1,则表则表明第明第 i 个选项被选中。个选项被选中。6.4.7 6.4.7 滑动条滑动条 滑动条常用于控制屏幕的移动及图形的渐变等。当滑动滑动条常用于控制屏幕的移动及图形的渐变等。当滑动条从左端逐渐滑动到右端时,它的条从左端逐渐滑动到右端时,它的 Value 属性值由属性值由 0 逐渐过逐渐过渡到渡到 1。滑动条的滑动条的 Style 属性值为属性值为 Slider。6.5 6.5 小结小结
限制150内