Примечание
Окружение GUIDE будет удаляемо в следующем релизе. После удаления GUIDE существующие приложения GUIDE будут продолжать запускаться в MATLAB® но они не будут редактироваться в GUIDE.
Чтобы продолжить редактирование существующего приложения GUIDE, смотрите GUIDE Migration Strategies для получения информации о том, как помочь поддерживать совместимость приложения с будущими релизами MATLAB. Чтобы создать новые приложения в интерактивном режиме, вместо этого Разрабатывайте приложения с использованием App Designer.
В этом примере показано, как изучить и запустить предварительно построенное приложение GUIDE. Приложение отображает объемную поверхностную диаграмму, добавляет случайный шум на поверхность и обновляет график через регулярные интервалы. Приложение содержит две кнопки: одну, которая начинает добавлять случайный шум к графику, и другую, которая перестает добавлять шум. Ползунок под графиком позволяет пользователю задать период обновления между 0,01 и 2 секундами.
Откройте и запустите приложение. Переместите ползунок, чтобы установить интервал обновления между 0,01 и 2,0 секундами. Затем нажмите кнопку Start Randomizing, чтобы начать добавлять случайный шум к нанесенной на график функции. Нажмите кнопку «Остановить рандомизацию», чтобы остановить добавление шума и обновление графика.
В GUIDE нажмите кнопку Editor, чтобы просмотреть код.
В верхней части окна Editor используйте кнопку Go To для перехода к функциям , описанным ниже.
ex_guide_timergui_OpeningFcn
The ex_guide_timergui_OpeningFcn
функция выполняется, когда приложение открывается и начинает запускаться. Эта команда создает timer
объект и хранит его в handles
структура.
handles.timer = timer(... 'ExecutionMode', 'fixedRate', ... % Run timer repeatedly. 'Period', 1, ... % Initial period is 1 sec. 'TimerFcn', {@update_display,hObject}); % Specify callback function.
update_display
, которая определяется как локальная функция.update_display
The update_display
функция выполняется, когда заданный timer
период истекает. Функция получает значения в ZData
свойство Surface
объект и добавляет ему случайный шум. Затем он обновляет график.
handles = guidata(hfigure); Z = get(handles.surf,'ZData'); Z = Z + 0.1*randn(size(Z)); set(handles.surf,'ZData',Z);
periodsldr_Callback
The periodsldr_Callback
функция выполняется, когда пользователь перемещает ползунок. Он вычисляет период таймера, получая значение ползунка и обрезая его. Затем он обновляет метку под ползунком и обновляет период timer
объект.
% Read the slider value period = get(handles.periodsldr,'Value'); % Truncate the value returned by the slider. period = period - mod(period,.01); % Set slider readout to show its value. set(handles.slidervalue,'String',num2str(period)) % If timer is on, stop it, reset the period, and start it again. if strcmp(get(handles.timer, 'Running'), 'on') stop(handles.timer); set(handles.timer,'Period',period) start(handles.timer) else % If timer is stopped, reset its period. set(handles.timer,'Period',period) end
startbtn_Callback
The startbtn_Callback
функция вызывает start
метод timer
объект, если таймер еще не запущен.
if strcmp(get(handles.timer, 'Running'), 'off') start(handles.timer); end
stopbtn_Callback
The stopbtn_Callback
функция вызывает stop
метод timer
Объект, работает ли таймер в данный момент.
if strcmp(get(handles.timer, 'Running'), 'on') stop(handles.timer); end
figure1_CloseRequestFcn
The figure1_CloseRequestFcn
коллбэк выполняется, когда пользователь закрывает приложение. Функция останавливает timer
объект, если он работает, удаляет timer
объект, а затем удаляет окно рисунка.
if strcmp(get(handles.timer, 'Running'), 'on') stop(handles.timer); end % Destroy timer delete(handles.timer) % Destroy figure delete(hObject);