Поведение ползунка MATLAB

У меня есть виджет слайдера с использованием GUIDE в MATLAB 2012a. Я хочу, чтобы он управлял осью, которая отображает изображения, в которых ползунок выполняет последовательность из них.

Я установил свойства ползунка для Min, Max и SliderStep в одной части m файла.

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

В обратном вызове ползунка, я проверил, что Min, Max и SliderStep установлены правильно.

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

Однако, когда я нажимаю стрелки слайдера, я прыгаю только между началом и концом. Каждый раз, когда в окно команд печатаются правильные значения Min, Max, SliderStep и Value (хотя только 1 или слайдерMax). Я не могу шагнуть с шагом 1 для просмотра изображений внутри последовательности.

Ответ 1

размер фактического размера ползунка масштабируется диапазоном: ActualStep = SliderStep * (Max - Min) Следующая строка должна решить вашу проблему: sliderStep = [1, 1] / (sliderMax - sliderMin). Вероятно, вам следует проверить, что вы не делите на ноль перед этой строкой. Обратите внимание, что слайдеры не будут отображаться, если Max не больше Min.