一、使用Push Buttion 按钮与静态文本设计GUI,在窗口显示单击按钮次数。
① 在GUI界面上安装一个按钮和一个静态文本。对这两个控件的属性进行简单设置。
② 设置按钮的回调函数
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
persistent c;
if isempty(c)
c=0
end
c=c+1;
str=sprintf('Total Clicks: %d',c);
set (handles.text1,'String',str);
保存即可运行。
二、设计一个简单信号分析仪的程序
① 在布局编辑器中布置如下图的控件;
② 设置控件属性如下图所示。主要是设置了string属性和Fontsize属性。
③ 设置控件的标识Tag。控件的标识用于对各控件的识别。每个控件在创建时都会由开发环境自动产生一个标识,在程序设计中,为了编辑、记忆和维护方便,一般为控件设置一个新的标识。
在本例中,设置两个坐标轴的标识为frequency_axes和time_axes;三个文本标识为f1_input,f2_input,t_input。
④ 进行代码的编写。GUI图形界面,是经过特定的设计思路和计算方法,最终由特定程序实现的一种功能。程序中变量的赋值、输入和输出、计算以及绘图等功能的实现,需要在程序运行前编写相应的代码。
设置对象的初始值:
在f1_input,f2_input,t_input对应的f2_input_CreateFcn()函数之中设置初始值。
set(hObject,'string','20');
set(hObject,'string','20');
set(hObject,'string','0:0.001:0.5');
为按钮的调用函数编写代码,其放置在按钮的调用函数pushbutton1_Callback()中。(在本例中,所有的代码皆写在了该函数之下,函数功能:读取输入值、对输入值进行处理、画图。所有的功能均放置在按钮的调用函数之中)
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
f1=str2double(get(handles.f1_input,'String'));
f2=str2double(get(handles.f2_input,'String'));
t=eval(get(handles.t_input,'String'));
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;
axes(handles.frequency_axes);
plot(f,m(1:257))