1.MATLAB 中的属性与属性值
Matlab中,所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显示的方式。尽管许多属性所有的对象都有,但与每一种对象类型(比如坐标轴、线、曲面)相关的属性列表都是独一无二的。对象属性可包括诸如对象的位置、颜色、类型、父对象、子对象及其它内容。每一个不同对象都有和它相关的属性,可以改变这些属性而不影响同类型的其他对象。
1.1 get() 函数
get() 函数用于查询图形对象的属性。最常用的方式有两种:
get(h) get(h,\'PropertyName\')a = get(h) 返回一个结构体,它包含了图形对象 h 所有的属性和属性值。可以用
a.PropertyName 的方式访问 PropertyName 属性的属性值。
get(h,\'PropertyName\') 返回图形对象 h 中 PropertyName 属性的值。
1.2 set() 函数
set() 函数用于设置图形对象的属性。常用语法:
set(H,\'PropertyName\',PropertyValue,...)H 为图形对象,PropertyName 为属性名,PropertyName 为属性值。
2.GUI 中的回调函数
回调函数是控件接收到用户操作时调用的一个特定函数。
2.1 回调函数自动命名
回调函数的函数名是 GUI 对其自动命名,当在设计界面添加一个控件并保存时,MATLAB 就会根据该控件的“tag”属性确定回调函数的名称。例如,当控件 pushbutton1 添加时,其“tag”属性为 pushbutton1 ,则它的回调函数就会命名为 pushbutton1_callback 。如果修改“tag”属性,那么它的回调函数也会跟着改变。
2.2 回调函数的输入参数
回调函数的输入参数也是由 GUI 自动确定的。常用的有 hObject 、 eventdata 、 handles 。
其中:
hObject 是当前回调函数图形对象的句柄。例如在回调函数 pushbutton1_callback 中,hObject 就是 pushbutton1的句柄。通过 hObject 可以利用 get 和 set 函数获得和设置当前图形对象的属性。
eventdata 是预留的输入参数。
handles 是一个结构体,存放里图形窗口中所有图形对象的句柄。可以在回调函数之间传递数据。例如:set(handles.text3, \'visible\', \'off\'); %修改 text3 的属性
2.3 GUI 程序文件
1)fig 文件
fig 文件时一个图形文件,在设计界面时创建的界面保存在 fig 文件中。包括控件、菜单等所有图形对象的属性。
2)m 文件
m 文件用来存放 m 文件代码。matlab 自动生成 m 文件,为 GUI 控制程序提供一个框架。
m 文件包含以下几个部分:
主函数:主函数包括注释说明和窗口初始化程序,函数名为文件名。
子函数 FileName_OpeningFcn :子函数 FileName_OpeningFcn 是打开窗口时的初始化程序,当窗口打开时立即执行这个函数,这个函数只会执行一次。FileName 为文件名。
子函数 FileName_OutputFcn :子函数 FileName_OutputFcn 是窗口的输出子函数,定义输出到命令窗口的变量。
其它子函数是控件的回调函数。
2.4 全局变量
在回调函数之间的数据传递可以使用定义全局变量的方法。global 指令用于声明全局变量。语法为:
global X Y Z这里需要注意的是,我们必须要在每个回调函数中使用 global 指令,这样我们才能调用全局变量。
3. 其它常用函数
3.1 弹出检索文件的对话框 uigetfile
调用 uigetfile 函数可以弹出一个检索文件的对话框。
常用语法如下:
filename = uigetfile [FileName,PathName,FilterIndex] = uigetfile(FilterSpec) [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle)filename = uigetfile 弹出一个检索文件的对话框,列出当前路径下的所有文件,通过这个对话框选择文件并单击“打开”按钮后,如果文件存在,且文件名有效,则函数会返回文件名。
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec) 在弹出的对话框中只显示文件名与 FilterSpec 匹配的文件。FilterSpec 可以是字符串也可以是字符串组成的阵列,支持通配符“*”。例如:
[filename, pathname]=uigetfile({\'*.jpg\';\'*.bmp\';\'*.gif\'}) %只显示 jpg、bmp、gif 类型的文件
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle) DialogTitle指定对话框标题
3.2 弹出一个保存文件的对话框 uiputfile
函数 uiputfile 可以弹出一个保存文件的对话框,使用方法与上文类似。