2012-05-04 28 views
11

Tôi có một tiện ích con trượt được tạo bằng GUIDE trong MATLAB 2012a. Tôi muốn nó điều khiển một trục hiển thị hình ảnh trong đó thanh trượt đi qua một dãy của chúng.MATLAB trượt hành vi bước

Tôi đã đặt thuộc tính của thanh trượt cho Min, Max và SliderStep trong một phần của tệp 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 

Trong gọi lại thanh trượt, tôi đã xác minh Min, Max và SliderStep được đặt chính xác.

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

Tuy nhiên, khi tôi nhấp vào mũi tên của thanh trượt, tôi chỉ nhảy giữa đầu và cuối. Mỗi lần Min, Max, SliderStep và Value chính xác (mặc dù chỉ 1 hoặc sliderMax) được in ra cửa sổ lệnh. Tôi không thể bước từng bước 1 để xem hình ảnh ở bên trong của chuỗi.

Trả lời

12

actual slider step size được chia tỷ lệ theo phạm vi: ActualStep = SliderStep * (Max - Min) Dòng sau sẽ giải quyết vấn đề của bạn: sliderStep = [1, 1]/(sliderMax - sliderMin). Bạn có lẽ nên kiểm tra xem bạn không chia cho số không trước dòng này. Lưu ý rằng thanh trượt sẽ không hiển thị nếu Max không lớn hơn Min.

+0

Cảm ơn bạn. Đề xuất của bạn đã khắc phục được sự cố của tôi. – Noren

+0

Không thể chỉnh sửa câu trả lời; liên kết mới hơn: https://www.mathworks.com/help/matlab/ref/uicontrol-properties.html – aguadopd