Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MATLAB slider step behavior

I have a created a slider widget using GUIDE in MATLAB 2012a. I want it to control an axis that displays images inwhich the slider steps through a sequence of them.

I have set the slider's properties for Min, Max, and SliderStep in one part of the 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

In the slider callback, I have verified Min, Max, and SliderStep are set correctly.

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

However, when I click on the slider's arrows, I jump only between the beginning and end. Each time the correct Min, Max, SliderStep, and Value (although only 1 or sliderMax) is printed to the command window. I am unable to step in increments of 1 to view the images in the interior of the sequence.

like image 739
Noren Avatar asked May 04 '12 15:05

Noren


1 Answers

The actual slider step size is scaled by the range: ActualStep = SliderStep * (Max - Min) The following line should solve your problem: sliderStep = [1, 1] / (sliderMax - sliderMin). You should probably check that you don't divide by zero before this line. Do note that sliders won't render if Max is not greater than Min.

like image 168
AE426082 Avatar answered Oct 21 '22 16:10

AE426082