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