Use sprintf in callback function to get an output variable
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
I've got a very simple callback function 'countclicks', which displays the type of click (normal,alt,extend or open) and its coordinates in the command window when a mouse click is performed on my figure. How can I use sprintf to get the type of click and the associated coordinates in a seperate variable?
Thank you!
function countclicks(gcbo,eventdata,handles)
disp(get(gcf,'SelectionType'))
disp(get(gca,'CurrentPoint'))
end
댓글 수: 0
답변 (1개)
Arthur Roué
2020년 8월 5일
function countclicks(gcbo,eventdata,handles)
strSelectionType = get(gcf,'SelectionType');
XY = get(gca,'CurrentPoint');
sprintf('Type : %s, X = %d / Y = %d', strSelectionType, XY(1), XY(2))
end
댓글 수: 3
Steven Lord
2020년 8월 5일
Callback functions do not return any output arguments. So where do you want to "get a variable" that captures the click location?
I think you may want to use the ginput function.
Arthur Roué
2020년 8월 5일
You can store thoses values in variable shared with the GUI main function and its nested functions.
function myGUI()
% Create a local variable shared with nested function
XY = []
% Creat an axe with a callback
hAxe = axes(.., 'ButtonDownFcn', @countclicks)
function countclicks(src, evt)
strSelectionType = get(src.Parent,'SelectionType'); % src.Parent = figure handme
XY = get(src,'CurrentPoint');
sprintf('Type : %s, X = %d / Y = %d', strSelectionType, XY(1), XY(2))
end
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!