Main Content

Actualizar trazado automáticamente en una aplicación de GUIDE

En este ejemplo se muestra cómo examinar y ejecutar una aplicación GUIDE Precompilando. La aplicación muestra una gráfica de superficie, agrega ruido aleatorio a la superficie y actualiza el trazado a intervalos regulares. La aplicación contiene dos botones: uno que comienza a agregar ruido aleatorio a la trama y otro que deja de agregar ruido. El control deslizante situado debajo de la gráfica permite al usuario establecer el período de actualización entre 0,01 y 2 segundos.

Abra y ejecute el ejemplo

Abra y ejecute la aplicación. Mueva el control deslizante para establecer el intervalo de actualización entre 0,01 y 2,0 segundos. A continuación, haga clic en el botón para empezar a agregar ruido aleatorio a la función trazada.Start Randomizing Haga clic en el botón para detener la adición de ruido y actualizar la gráfica.Stop Randomizing

Examine el código

  1. En GUIDE, haga clic en el botónEditor para ver el código.

  2. Cerca de la parte superior de la ventana del editor, utilice el Go To botón para navegar a las funciones que se describen a continuación.

ex_guide_timergui_OpeningFcn

La función se ejecuta cuando la aplicación se abre y comienza a ejecutarse.ex_guide_timergui_OpeningFcn Este comando crea el objeto y lo almacena en la estructura. La función de devolución de llamada para el temporizador es, que se define como una función local.timerhandles

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

La función se ejecuta cuando transcurre el período especificado.update_displaytimer La función obtiene los valores de la propiedad del objeto y le agrega ruido aleatorio.ZDataSurface A continuación, actualiza la trama.

handles = guidata(hfigure); Z = get(handles.surf,'ZData'); Z = Z + 0.1*randn(size(Z)); set(handles.surf,'ZData',Z);

periodsldr_Callback

La función se ejecuta cuando el usuario mueve el control deslizante.periodsldr_Callback Calcula el período del temporizador obteniendo el valor del deslizador y truncando. A continuación, actualiza la etiqueta debajo del control deslizante y actualiza el período del objeto.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

La función llama al método del objeto si el temporizador aún no se está ejecutando.startbtn_Callbackstarttimer

if strcmp(get(handles.timer, 'Running'), 'off')     start(handles.timer); end 

stopbtn_Callback

La función llama al método del objeto si el temporizador se está ejecutando actualmente.stopbtn_Callbackstoptimer

if strcmp(get(handles.timer, 'Running'), 'on')     stop(handles.timer); end

figure1_CloseRequestFcn

La devolución de llamada se ejecuta cuando el usuario cierra la aplicación.figure1_CloseRequestFcn La función detiene el objeto si se está ejecutando, elimina el objeto y, a continuación, elimina la ventana de la figura.timertimer

if strcmp(get(handles.timer, 'Running'), 'on')     stop(handles.timer); end % Destroy timer delete(handles.timer) % Destroy figure delete(hObject);

Temas relacionados