Discretizing matlab slider GUI
이전 댓글 표시
Hi all. I'm wondering how to make a slider within Matlab GUI whose values are discretized.
So for example, I want to create a simple slider that cycles through integers 1 - 13.
I have tried adjusting the control properties Max / Min and sliderStep. These work fine for discretizing the slider arrows, but dragging the slider "square" itself and moving it to the left and right is still rather "continuous". I want to only be able to see or select integers within the range. Is this possible?
Thanks, Hamad
채택된 답변
추가 답변 (1개)
M. Massing
2015년 8월 11일
In case someone else has the same problem in the future, here is a much easier way I found using the slider's callback function:
% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject handle to slider1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider
% get(hObject,'Min') and get(hObject,'Max') to determine range of slider
val=round(hObject.Value);
hObject.Value=val;
This way you round the non-integer value of the slider to the closes integer and then let the thumb indicator snap to that integer value.
Also sorry for gravedigging
댓글 수: 3
Andrew C.
2016년 5월 3일
Make sure you also set SliderStep appropriately, or else the step may be too small to escape the rounding behaviour, and users trying to use the arrow keys may get frustrated. Great refinement of Geoff's answer above!
Kelsey Pettrone
2020년 11월 10일
I cant add a callback that says (H0bject,eventdata,handles). How do i do this with just
function SlideryearValueChanged(app, event). this is the only option i can find for a call back. Please help.
Geoff Hayes
2020년 11월 11일
Kelsey - perhaps you can do something like
function SliderValueChanged(app, event)
roundedValue = round(app.Slider.Value);
app.Slider.Value = roundedValue;
end
카테고리
도움말 센터 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!