Примечание
Среда GUIDE будет удалена в следующей версии. После удаления GUIDE существующие приложения GUIDE будут продолжать работать в MATLAB ®, но они не будут редактироваться в GUIDE.
Чтобы продолжить редактирование существующего приложения GUIDE, см. раздел Стратегии миграции GUIDE для получения информации о том, как поддерживать совместимость приложения с будущими выпусками MATLAB. Чтобы создать новые приложения в интерактивном режиме, разработайте приложения с помощью App Designer.
В этом примере показано, как исследовать и запустить предварительно созданное приложение GUIDE app. Приложение отображает график поверхности, добавляет случайный шум к поверхности и регулярно обновляет график. Приложение содержит две кнопки: одна начинает добавлять случайный шум в график, а другая прекращает добавлять шум. Ползунок под графиком позволяет пользователю установить период обновления от 0,01 до 2 секунд.
Откройте и запустите приложение. Переместите ползунок, чтобы установить интервал обновления от 0,01 до 2,0 секунд. Затем нажмите кнопку «Начать рандомизацию», чтобы начать добавление случайного шума к построенной функции. Нажмите кнопку «Остановить рандомизацию», чтобы прекратить добавление шума и обновление графика.

В GUIDE нажмите кнопку «Редактор
» для просмотра кода.
В верхней части окна «Редактор» используйте
кнопку «Перейти к» для перехода к функциям
, описанным
ниже.
ex_guide_timergui_OpeningFcn 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 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 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 startbtn_Callback функция вызывает start способ timer объект, если таймер еще не запущен.
if strcmp(get(handles.timer, 'Running'), 'off') start(handles.timer); end
stopbtn_Callback stopbtn_Callback функция вызывает stop способ timer объект, если таймер в данный момент запущен.
if strcmp(get(handles.timer, 'Running'), 'on') stop(handles.timer); end
figure1_CloseRequestFcn figure1_CloseRequestFcn обратный вызов выполняется, когда пользователь закрывает приложение. Функция останавливает timer объект, если он запущен, удаляет timer объект, а затем удаляет окно фигуры.
if strcmp(get(handles.timer, 'Running'), 'on') stop(handles.timer); end % Destroy timer delete(handles.timer) % Destroy figure delete(hObject);