2012-05-04 19 views
11

MATLAB 2012a'da GUIDE kullanarak bir kaydırıcı eklendi. Kaydırıcı adımlarındaki görüntüleri bir dizi boyunca görüntüleyen bir ekseni kontrol etmesini istiyorum.MATLAB kaydırıcı adım davranışı

Kaydırma çubuğunun m-dosyasının bir bölümünde Min, Max ve SliderStep özelliklerini ayarlamıyorum.

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 

Kaydırıcı geri aramada, Min, Max ve SliderStep'in doğru şekilde ayarlandığını doğruladım.

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

Ancak, kaydırıcının oklarını tıklattığımda, yalnızca başlangıç ​​ve bitiş arasında atlar. Her defasında doğru Min, Max, SliderStep ve Değer (sadece 1 veya sliderMax olmasına rağmen) komut penceresine yazdırılır. Sekansın içindeki görüntüleri görüntülemek için 1'lik artışlarla adım atamıyorum.

cevap

12

actual slider step size, ActualStep = SliderStep * (Max - Min) aralığı tarafından ölçeklendirilir. Aşağıdaki satır sizin sorununuzu çözmelidir: sliderStep = [1, 1]/(sliderMax - sliderMin). Bu satırdan önce sıfıra bölmediğinizi kontrol etmelisiniz. MaxMin'dan büyük değilse, kaydırıcıların oluşturulmayacağını unutmayın.

+0

Teşekkür ederiz. Öneriniz sorunumu çözdü. – Noren

+0

Yanıtı düzenleyemiyor; daha yeni bağlantı: https://www.mathworks.com/help/matlab/ref/uicontrol-properties.html – aguadopd