The matlab doc gives a way to manually Export Cursor Data to Workspace. Is there a function to do this automatically ? I would like to make computations on the cursor coordinates that the user drags in the plot (imshow).

 採用された回答

Kojiro Saito
Kojiro Saito 2018 年 7 月 10 日

7 投票

datacursormode and getCursorInfo will be a solution.
x = linspace(0,10,150);
y = cos(5*x);
fig = figure;
plot(x,y,'Color',[0,0.7,0.9])
title('2-D Line Plot')
xlabel('x')
ylabel('cos(5x)')
% Enable data cursor mode
datacursormode on
dcm_obj = datacursormode(fig);
% Set update function
set(dcm_obj,'UpdateFcn',@myupdatefcn)
% Wait while the user to click
disp('Click line to display a data tip, then press "Return"')
pause
% Export cursor to workspace
info_struct = getCursorInfo(dcm_obj);
if isfield(info_struct, 'Position')
disp('Clicked positioin is')
disp(info_struct.Position)
end
function output_txt = myupdatefcn(~,event_obj)
% ~ Currently not used (empty)
% event_obj Object containing event data structure
% output_txt Data cursor text
pos = get(event_obj, 'Position');
output_txt = {['x: ' num2str(pos(1))], ['y: ' num2str(pos(2))]};
end

7 件のコメント

paul harder
paul harder 2019 年 5 月 1 日
thank you
Jerry
Jerry 2020 年 4 月 19 日
How is this possible with multiple data tips? When I try it with more than one data tip the error code
'Error using dispToo many input arguments.' appears.
Heini Rasmussen
Heini Rasmussen 2020 年 5 月 29 日
@Jerry: Did you find a solution to this?
Francesco Botticella
Francesco Botticella 2020 年 11 月 5 日
info_struct(1).DataIndex
info_struct(2).DataIndex
.......
Angie Vicente
Angie Vicente 2021 年 1 月 3 日
help! how i can extract two datas with this code?
Rachid Belaroussi
Rachid Belaroussi 2021 年 3 月 4 日
編集済み: Rachid Belaroussi 2021 年 3 月 4 日
tx kojiro, that help so much! I might add (tx to francesco): multiple data tips can be done by alt+left click to add a new point
Ganzorig
Ganzorig 2025 年 3 月 12 日
Thanks,

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Creating, Deleting, and Querying Graphics Objects についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by