MATLABGUI解读
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
% proceed with callback...
7.5 可视界面开发工具 GUIDE 介绍
List Box 的编程,从 List Box 中获得所选的项目 (本例有2个项目被选中)
function [var1,var2] = get_var_names(handles) % Returns the names of the two variables to plot list_entries = get(handles.listbox1,'String'); index_selected = get(handles.listbox1,'Value'); if length(index_selected) ~= 2 errordlg('You must select two variables','Incorrect Selection','modal') else var1 = list_entries{index_selected(1)}; var2 = list_entries{index_selected(2)};
为了使得一组 Radio Button 中只有一个被选,要求用 户编程设置其他的 Radio Button 的 Value值为零,被 选中的那个 Radio Button 系统设为 1。
function varargout = radiobutton1_Callback(h,eventdata,handles,varargin) off = [handles.radiobutton2,handles.radiobutton3,handles.radiobutton4]; set(off,'Value',0)
MATLAB程序语言设计
龙佳乐
五邑大学信息学院 Longjiale_528@126.com
第七讲 MATLAB图形用户界面设计
7.1 MATLAB 图形界面编程基础 7.2 MATLAB 标准对话框
7.3 MATLAB 图形界面设计基本控件
7.4 MATLAB 界面菜单系统设计 7.5 可视界面开发工具 GUIDE 介绍 7.6 程序设计举例与习题
1. 设计 GUI 界面及其各个控件布局
2. 为各个 GUI 界面控件编程 Callback 函数
从原理上来说,任何含GUI界面的程序都可以用M文件编辑器
Editor来实现,但显然用 GUIDE 工具设计界面要方便得多。 GUIDE设计将得到两个文件,他们是 1. FIG文件:包含界面布局设计及各个图形对象属性取值 2. M文件:调出界面的主程序及各个回调子程序,一般称
h eventdata handles
Callback 函数附属的对象的句柄 保留 对象句柄
varagin
传递给 Callback 函数的参数列表
7.5 可视界面开发工具 GUIDE 介绍
GUI图形界面对象的属性可以用 Property Inspector 来查看与
修改。
7.5 可视界面开发工具 GUIDE 介绍
7.5 可视界面开发工具 GUIDE 介绍
当你选择 Generate callback function prototypes时, GUIDE
为每个有 Callback 函数的控件产生 Callback 原型函数。
Callback 原型函数语法及参数如下
function varargout = objectTag_Callback(h,eventdata,handles,varargin)
end
7.5 可视界面开发工具 GUIDE 介绍
Popup Menu 的编程
function varargout = popupmenu1_Callback(h,eventdata,handles,varargin) val = get(h,'Value'); switch val case 1 % The user selected the first item case 2 % The user selected the second item % etc. function varargout = popupmenu1_Callback(h,eventdata,handles,varargin)
7.6 程序设计举例与习题
第三步:Plot 按纽的 Callback 函数编程
function varargout = plot_button_Callback(h, eventdata, handles, varargin) % Get user input from GUI f1 = str2double(get(handles.f1_input,'String')); f2 = str2double(get(handles.f2_input,'String')); t = eval(get(handles.t_input,'String')); % Calculate data x = sin(2*pi*f1*t) + sin(2*pi*f2*t); y = fft(x,512); m = y.*conj(y)/512; f = 1000*(0:256)/512;; % Create frequency plot axes(handles.frequency_axes) % Select the proper axes plot(f,m(1:257)); set(handles.frequency_axes,'XMinorTick','on'); grid on % Create time plot axes(handles.time_axes) % Select the proper axes plot(t,x); set(handles.time_axes,'XMinorTick','on'); grid on
为M应用文件。
7.5 可视界面开发工具 GUIDE 介绍
应用 GUIDE 进行设计时,先要设置好GUIDE应用选项,选 择菜单 Tools/Application Options,将弹出如下对话框。
各个选项含义很容易明白,在此不再多说。
7.5 可视界面开发工具 GUIDE 介绍
一般来说,在MATLAB命令窗执行的绘图函数将在当前图
由差分方程求系统输入为x时的零状态 响应 filter(b,a,x) 求系统单位取样响应 impz(b,a,N) 离散卷积conv(x1,x2) Z变换 Z=ztrans(x), x=iztrans(Z)必须先设 符号函数sym(‘x’),最后可用simplify(Z) 化简 已知系统函数求零极点即求分子or分母 的根roots,或[Z,P,K]=tf2zp(B,A),画零 极点图用zplane(B,A)
% checkbox is not checked-take approriate action
end
7.5 可视界面开发工具 GUIDE 介绍
Edit Text 的编程
function edittext1_Callback(h,eventdata,handles,varargin)
user_string = get(h,'string'); % proceed with callback...
7.5 可视界面开发工具 GUIDE 介绍
Check Box 的编程
Check Button 选还是没有被选由 Value 属性值来确定
Value = Max, 被选. Value = Min, 没有被选
Check Box 的 Callback 编程如下。
function checkbox1_Callback(h,eventdata,handles,varargin) if (get(h,'Value') == get(h,'Max')) % then checkbox is checked-take approriate action else
从 Edit Text 中取数值
function edittext1_Callback(h,eventdata,handles,varargin) user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal') end
f1_input。两个坐标轴的 Tag 属性分别设为 frequency_axes
和 time_axes,将来 Callback 函数方便引用,如:
handles.frequency_axes 和 handles.time_axes
• 选择菜单 Tools/Application Options 设置: Resize behavior: Command-line accessibility: 为 Proportional 为 Callback
形窗口绘图,但一般GUI窗口不希望这样操作,这可由选项
Command-Line Accessibility 来控制,它的含义如下。
Callback
Off On User-specified
GUI窗口和坐标轴只能被Callback 函数使用,这是缺省值 MATLAB命令行命令不能控制GUI 界面 MATLAB命令行命令可以控制GUI 界面 根据窗口的HandleVisibility 和 IntegerHandle 属性值由用户决定
if button_state == get(h,'Max')
% toggle button is pressed
elseif button_state == get(h,'Min') % toggle button is not pressed end a(:,:,1) = rand(16,128);
val = get(h,'Value'); string_list = get(h,'String'); selected_string = string_list{val}; % convert from cell array to string % etc.
7.6 程序设计举例与习题
例子:设计如下图所示界面
7.5 可视界面开发工具 GUIDE 介绍
MATLAB 提供了一个可视的图形界面开发程序 GUIDE。
它的含义是 GUI Design Environment。在MATLAB命令
窗中键入命令 guide 将得到如图所示界面。
7.5 可视界面开发工具 GUIDE 介绍
开发含GUI界面的程序包含两个步骤
已知系统函数求频率特性 [H,w]=frqz(B,A,N)和 [H,w]=frqz(B,A,N,‘Whole’)
7.6 程序设计举例与习题
第一步:设计界面布局
7.6 程序设计举例与习题
第二步:设置各个对象的属性
• 三个 Edit Box 的 String 属性分别设为 50,120,
0:0.001:0.25,作为f1, f2, t的初始值 • 三个 Edit Box 的 Tag 属性分别设为f1_input, f2_input 和
为按纽加图像
a(:,:,2) = rand(16,128); a(:,:,3) = rand(16,128); set(h,'CData',a)
7.5 可视界面开发工具 GUIDE 介绍
Radio Button 的编程
Radio Button 选还是没有被选由 Value 属性值来确定
Value = Max, 被选. Value = Min, 没有被选
可以用 Object Browser 查看图形对象的Biblioteka Baidu次图
7.5 可视界面开发工具 GUIDE 介绍
下面介绍各个图形对象的Callback编程 Toggle Button 的 Callback 编程
function varargout = togglebutton1_Callback(h,eventdata,handles,varargin) button_state = get(h,'Value');