web-dev-qa-db-ja.com

MATLABスライダーのステップ動作

MATLAB2012aで​​GUIDEを使用してスライダーウィジェットを作成しました。スライダーが一連の画像をステップスルーする画像を表示する軸を制御したいと思います。

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

スライダーコールバックで、最小、最大、およびスライダーステップが正しく設定されていることを確認しました。

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

ただし、スライダーの矢印をクリックすると、最初と最後の間だけジャンプします。正しい最小、最大、スライダーステップ、および値(ただし、1またはsliderMaxのみ)がコマンドウィンドウに出力されるたび。シーケンスの内部の画像を表示するために1刻みでステップインすることができません。

12
Noren

実際のスライダーのステップサイズ は次の範囲でスケーリングされます:ActualStep = SliderStep * (Max - Min)次の行で問題が解決するはずです:sliderStep = [1, 1] / (sliderMax - sliderMin)。この行の前でゼロで除算しないことを確認する必要があります。 MaxMinより大きくない場合、スライダーはレンダリングされないことに注意してください。

12
AE426082