【matlab】ispc && isequal解读
2017-01-13 15:22
218 查看
>> help getappdata
getappdata - Value of application-defined data
This MATLAB function returns the value of a MATLAB variable stored in a GUI.
value = getappdata(h,name)
values = getappdata(h)
> >帮助getappdata
getappdata——已定义应用程序数据的值
这个MATLAB函数返回一个在GUI中存储的MATLAB变量的值
3. 用全局变量,最次的办法,有时却是最好的办法;
对于处理GUI问题,一般不用save和load命令(要从mat文件读取数据初始化或者把数据存储到mat文件中例外)
“function的varargin和varargout传送”的方法也不较少使用(因为对于控件的回调函数,matlab规定了输入参数为“hObject, eventdata, handles, varargin”,且一般没有返回值,所以不同于自定义的函数),所以剩下的方法就只有三种了:
1. 存在handle的ApplicationData中――利用setappdata函数将数据保存在对象的“ApplicationData”属性中,利用getappdata函数从对象的“ApplicationData”属性中提取数据,如果没有定义,就为空。
例如,假设figure的tag属性是figure1,则setappdata(handles.figure1,’A’,A)就可以把变量A存放到figure1的“ApplicationData”属性中,名字为A,而B = getappdata(handles.figure1,’A’)就可以把figure1的“ApplicationData”属性中名字为A的变量赋给B。setappdata和getappdata操作的对象,最好为figure_handle,便于管理和扩展。Matlab的高级编程和对象控制,将大量使用这两个函数[转自cwit];
2. 保存在handles里面――首先,这是访问控件的常用方法,注意到Tag是唯一标识控件的属性,也就说,如果一个控件的Tag属性是a,那么,在fig对应的m文件中,只要含有“handles”作为其输入参数的函数中,就可以使用handles.a对该控件进行访问。既然句柄(相当于其他语言中的指针)已经拿到手了,就任由“宰割”了(例如设置属性、存取数据等就比较容易了);其次,可以利用这种方法把自定义的变量保存在handles里面进行存取,这在matlab帮助的Creating
a GUI with GUIDE一节中有具体介绍,不多说;
3. 用全局变量的方法――这是我进行参数传递的常用方法,使用方法是:在两个函数体(当然可以是多个了,这里是主函数和子函数的意思)中使用前加入语句“global A”,其中A是多个函数需要传递的变量名,多个变量用空格格开,句末不需要加分号。这种方法由于存放在硬盘上,存取速度会减慢,但是如果变量个数不多、或者对该变量引用的函数不多,可以考虑用此办法(我尚未能领会cwit兄所说“最次的办法,有时却是最好的办法”之含义)。
至于其他有关GUI命令、控件属性和图形属性可以参考matlab的帮助,或者参考“GUI命令大全”、《精通GUI图形界面编程》(这两个本论坛有)、“Matlab图形图像属性”、“GUI.rtf”(这两个参见附件,后者下载后手动修改一下后缀名)。实际上,用得比较多的控件属性不外乎以下几种(高手例外):
Visible属性,例如axes、edit、button等,格式:set(handles.***, ‘Visible’, ‘on’); 或者set(handles.***, ‘Visible’, ‘off’);
String属性,例如edit、text等,格式:str=get(handles.***, ‘String’)或set(handles.***,’String’,str);
Enable属性,例如edit、button、text等,格式:set(handles.***, ‘Enable’, ‘on’);或者set(handles.***, ‘Enable’, ‘off’);
Value属性,例如radio button、check box等,格式:a=get(handles.***, ‘Value’)或set(handles.***,’Value’,1); 或set(handles.***,’Value’,0);
留意一下响应函数的注释部分,有时候会得到提示的。例如,我的 matlab 2007a 中,在设计界面上增加了 listbox 控件后,m 文件的对应回调函数处显示如下:
% --- Executes on selection change in listbox1.
function listbox1_Callback(hObject, eventdata, handles)
% hObject handle to listbox1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns listbox1 contents as cell array —— 这是该控件基本用法的一点提示
% contents{get(hObject,'Value')} returns selected item from listbox1 —— 这是该控件基本用法的一点提示
getappdata - Value of application-defined data
This MATLAB function returns the value of a MATLAB variable stored in a GUI.
value = getappdata(h,name)
values = getappdata(h)
> >帮助getappdata
getappdata——已定义应用程序数据的值
这个MATLAB函数返回一个在GUI中存储的MATLAB变量的值
3. 用全局变量,最次的办法,有时却是最好的办法;
对于处理GUI问题,一般不用save和load命令(要从mat文件读取数据初始化或者把数据存储到mat文件中例外)
“function的varargin和varargout传送”的方法也不较少使用(因为对于控件的回调函数,matlab规定了输入参数为“hObject, eventdata, handles, varargin”,且一般没有返回值,所以不同于自定义的函数),所以剩下的方法就只有三种了:
1. 存在handle的ApplicationData中――利用setappdata函数将数据保存在对象的“ApplicationData”属性中,利用getappdata函数从对象的“ApplicationData”属性中提取数据,如果没有定义,就为空。
例如,假设figure的tag属性是figure1,则setappdata(handles.figure1,’A’,A)就可以把变量A存放到figure1的“ApplicationData”属性中,名字为A,而B = getappdata(handles.figure1,’A’)就可以把figure1的“ApplicationData”属性中名字为A的变量赋给B。setappdata和getappdata操作的对象,最好为figure_handle,便于管理和扩展。Matlab的高级编程和对象控制,将大量使用这两个函数[转自cwit];
2. 保存在handles里面――首先,这是访问控件的常用方法,注意到Tag是唯一标识控件的属性,也就说,如果一个控件的Tag属性是a,那么,在fig对应的m文件中,只要含有“handles”作为其输入参数的函数中,就可以使用handles.a对该控件进行访问。既然句柄(相当于其他语言中的指针)已经拿到手了,就任由“宰割”了(例如设置属性、存取数据等就比较容易了);其次,可以利用这种方法把自定义的变量保存在handles里面进行存取,这在matlab帮助的Creating
a GUI with GUIDE一节中有具体介绍,不多说;
3. 用全局变量的方法――这是我进行参数传递的常用方法,使用方法是:在两个函数体(当然可以是多个了,这里是主函数和子函数的意思)中使用前加入语句“global A”,其中A是多个函数需要传递的变量名,多个变量用空格格开,句末不需要加分号。这种方法由于存放在硬盘上,存取速度会减慢,但是如果变量个数不多、或者对该变量引用的函数不多,可以考虑用此办法(我尚未能领会cwit兄所说“最次的办法,有时却是最好的办法”之含义)。
至于其他有关GUI命令、控件属性和图形属性可以参考matlab的帮助,或者参考“GUI命令大全”、《精通GUI图形界面编程》(这两个本论坛有)、“Matlab图形图像属性”、“GUI.rtf”(这两个参见附件,后者下载后手动修改一下后缀名)。实际上,用得比较多的控件属性不外乎以下几种(高手例外):
Visible属性,例如axes、edit、button等,格式:set(handles.***, ‘Visible’, ‘on’); 或者set(handles.***, ‘Visible’, ‘off’);
String属性,例如edit、text等,格式:str=get(handles.***, ‘String’)或set(handles.***,’String’,str);
Enable属性,例如edit、button、text等,格式:set(handles.***, ‘Enable’, ‘on’);或者set(handles.***, ‘Enable’, ‘off’);
Value属性,例如radio button、check box等,格式:a=get(handles.***, ‘Value’)或set(handles.***,’Value’,1); 或set(handles.***,’Value’,0);
留意一下响应函数的注释部分,有时候会得到提示的。例如,我的 matlab 2007a 中,在设计界面上增加了 listbox 控件后,m 文件的对应回调函数处显示如下:
% --- Executes on selection change in listbox1.
function listbox1_Callback(hObject, eventdata, handles)
% hObject handle to listbox1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns listbox1 contents as cell array —— 这是该控件基本用法的一点提示
% contents{get(hObject,'Value')} returns selected item from listbox1 —— 这是该控件基本用法的一点提示
相关文章推荐
- 【matlab】 ispc && isequal 是什么含义
- vc&matlab混合编程方法简介
- Peter's Projective Matlab Function
- matlab坐标刻度调整>>SimWe仿真论坛
- B-Spline & NURBS (Matlab Code)
- 解读Tilera"怪兽级"64核处理器(转)
- matlab运算符和逻辑函数-->特殊函数
- 解读比尔·盖茨的财富基因
- 用Matlab实现MDSC中的"Fourier Deconvolution"的算法
- 国内已经有好几本打着"matlab" "金融"的口号的图书了
- Peter's Projective Matlab Function(2)
- MATLAB: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed问题
- 张亚勤:解读“云计算”& 微软蓝天的优势。
- C#基础谈(四)---- 解读"Hello World"
- 解读:初识云操作系统 &深入研究云计算模式
- vc&matlab混合编程方法简介
- 专家解读"劳动合同法":企业员工均有误读
- matlab 编写程序时出现"out of memory"错误的 解决方案
- ISET 一个Matlab®软件包,它可以测量和可视化 当改变图象系统中的硬件和算法时对图象质量的影响!
- MatLab-pcolor绘图&读文件