Получить обратный вызов курсора данных в MATLAB GUI

Как я могу установить обратный вызов курсора данных GUI Matlab для определенных осей GUI? Я смог добавить значок курсора данных в панели инструментов GUI. Я могу выбрать 3D-точку на построенных данных, но мне нужно добавить больше информации в текст курсора данных, а также сделать некоторые другие вещи с координатами, которые он получает.

Я пытался следовать "как добавить дополнительную информацию к курсору данных?", но не работает для GUI.

оси GUI не являются цифрами, поэтому Я получаю эту ошибку:

Error using datacursormode (line 149) Invalid figure handle

мне нужно то же самое здесь, но для осей GUI (цифры?):

function test_main
% Plots graph and sets up a custom data tip update function
fig = figure('DeleteFcn','doc datacursormode');
X = 0:60;
t = (X)*0.02;
Y = sin(-16*t);
plot(X,Y)
dcm_obj = datacursormode(fig); % tried here "handles.MyFigHandle"
set(dcm_obj,'UpdateFcn',{@myupdatefcn,t})

function txt = myupdatefcn(~,event_obj,t)
% Customizes text of data tips
pos = get(event_obj,'Position');
I = get(event_obj, 'DataIndex');
txt = {['X: ',num2str(pos(1))],...
       ['Y: ',num2str(pos(2))],...
       ['I: ',num2str(I)],...
       ['T: ',num2str(t(I))]};

пока я могу получить только поведение datacursor по умолчанию, как это изображение: enter image description here

1 ответов


я не нашел никакой разницы между использованием data cursor в GUI и в рисунке.

повторно используя часть вашего кода, я создал GUI, в котором checkbox включение / отключение datacursormode.

графический интерфейс содержит два axes в котором нанесены две линии и 3D-поверхность соответственно.

три radiobuttons управляйте строкой, которая будет напечатана в текстовом поле, созданном при - это.

тэги GUI являются следующие:

  • левый axes: axes_2d
  • право axes: axes_3d
  • левый pushbutton: pushbutton_2d
  • право pushbutton: pushbutton_3d
  • checkbox: checkbox_enable_dc
  • левый radiobutton: radiobutton1
  • средний radiobutton: radiobutton2
  • ря radiobutton: radiobutton3

GUI работает следующим образом:

  • the pushbuttons участок в оси и включить checkbox
  • the checkbox включение / отключение datacursormode
  • по умолчанию, слева radiobutton выбирается и устанавливается строка по умолчанию
  • два других radiobutton установить другую строку

на основе выбранного radiobutton, первая строка строки в текстовом поле будет либо:

  • СТРОКА ПО УМОЛЧАНИЮ
  • СТРОКА ВАРИАНТ ОДИН
  • ПАРАМЕТР СТРОКИ Два

строка, которая будет записана в текстовом поле создается в папке myupdatefcn который был изменен для обработки параметров, выбранных radiobutton.

обратите внимание: чтобы не ограничивать модификацию вашей версии