2012-05-04 66 views
11

我在MATLAB 2012a中使用GUIDE創建了一個滑塊小部件。我希望它能夠控制一個顯示圖像的軸,滑塊在這些軸上順序排列。MATLAB滑塊步進行爲

我在m文件的一部分中設置了滑塊的Min,Max和SliderStep屬性。

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爲增量查看序列內部的圖像。

回答

12

actual slider step size的縮放範圍爲:ActualStep = SliderStep * (Max - Min)以下行應解決您的問題:sliderStep = [1, 1]/(sliderMax - sliderMin)。你可能應該檢查一下,在這一行之前你不會被零除。請注意,如果Max不大於Min,滑塊將不會呈現。

+0

謝謝。你的建議解決了我的問題。 – Noren

+0

無法編輯答案。較新的鏈接:https://www.mathworks.com/help/matlab/ref/uicontrol-properties.html – aguadopd