2012-05-04 33 views
11

Tengo un widget de control deslizante creado usando GUIDE en MATLAB 2012a. Quiero que controle un eje que muestre imágenes en las que el control deslizante pase por una secuencia de ellas.Comportamiento del paso deslizante de MATLAB

He establecido las propiedades del deslizador para Min, Max y SliderStep en una parte de la m-file.

sliderMin = 1; 
sliderMax = size(result); % this is variable 
sliderStep = [1, 1]; % major and minor steps of 1 

set(handles.slider, 'Min', sliderMin); 
set(handles.slider, 'Max', sliderMax); 
set(handles.slider, 'SliderStep', sliderStep); 
set(handles.slider, 'Value', sliderMin); % set to beginning of sequence 

En la devolución de llamada del control deslizante, he verificado que Min, Max y SliderStep están configurados correctamente.

sliderMin = get(hObject, 'Min') % correct 
sliderMax = get(hObject, 'Max') % correct 
sliderStep = get(hObject, 'SliderStep') % correct 
currentSliderStep = get(hObject, 'Value') % correct, 1 at start 

Sin embargo, al hacer clic en las flechas del deslizador, salto sólo entre el comienzo y el final. Cada vez, se imprime en la ventana de comandos el Min, Max, SliderStep y Value correctos (aunque solo 1 o sliderMax). No puedo avanzar en incrementos de 1 para ver las imágenes en el interior de la secuencia.

Respuesta

12

actual slider step size se escala por el intervalo: ActualStep = SliderStep * (Max - Min) La siguiente línea debería resolver su problema: sliderStep = [1, 1]/(sliderMax - sliderMin). Probablemente deberías comprobar que no dividas por cero antes de esta línea. Tenga en cuenta que los controles deslizantes no se mostrarán si Max no es mayor que Min.

+0

Gracias. Tu sugerencia solucionó mi problema. – Noren

+0

No se puede editar la respuesta; enlace más nuevo: https://www.mathworks.com/help/matlab/ref/uicontrol-properties.html – aguadopd

Cuestiones relacionadas