how to extract cursor data to a variable ?

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).

 Respuesta aceptada

Kojiro Saito
Kojiro Saito el 10 de Jul. de 2018
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 comentarios

paul harder
paul harder el 1 de Mayo de 2019
thank you
Jerry
Jerry el 19 de Abr. de 2020
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 el 29 de Mayo de 2020
@Jerry: Did you find a solution to this?
Francesco Botticella
Francesco Botticella el 5 de Nov. de 2020
info_struct(1).DataIndex
info_struct(2).DataIndex
.......
Angie Vicente
Angie Vicente el 3 de En. de 2021
help! how i can extract two datas with this code?
Rachid Belaroussi
Rachid Belaroussi el 4 de Mzo. de 2021
Editada: Rachid Belaroussi el 4 de Mzo. de 2021
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 el 12 de Mzo. de 2025
Thanks,

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 5 de Jul. de 2018

Comentada:

el 12 de Mzo. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by