MATLAB slider step behavior

徘徊边缘 提交于 2021-02-18 05:07:12

问题


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.


回答1:


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.



来源:https://stackoverflow.com/questions/10451997/matlab-slider-step-behavior

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!