2012-05-04 77 views
11

Mam utworzony widget suwaka za pomocą PRZEWODNIKA w MATLAB 2012a. Chcę, aby sterował osią, która wyświetla obrazy, w których suwak przechodzi przez ich sekwencję.Procedura zachowania suwaka MATLAB

Ustawiłem właściwości suwaka dla Min, Max i SliderStep w jednej części pliku 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 

W wywołaniu zwrotnym z suwakiem zweryfikowałem, że ustawienia Min, Max i SliderStep są ustawione prawidłowo.

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

Jednak po kliknięciu strzałek suwaka przeskakuję tylko między początkiem i końcem. Za każdym razem prawidłowe wartości Min, Max, SliderStep i Value (chociaż tylko 1 lub suwakMax) są drukowane w oknie poleceń. Nie mogę wykonać kroku co 1, aby obejrzeć obrazy we wnętrzu sekwencji.

Odpowiedz

12

Urządzenie actual slider step size jest skalowane w zakresie: ActualStep = SliderStep * (Max - Min) Poniższy wiersz powinien rozwiązać problem: sliderStep = [1, 1]/(sliderMax - sliderMin). Powinieneś prawdopodobnie sprawdzić, czy nie dzielisz przez zero przed tą linią. Zwróć uwagę, że suwaki nie będą renderowane, jeśli Max nie będzie większa niż Min.

+0

Dziękuję. Twoja sugestia naprawiła mój problem. – Noren

+0

Nie można edytować odpowiedzi tak; nowszy link: https://www.mathworks.com/help/matlab/ref/uicontrol-properties.html – aguadopd