Включение / выключение удержания ручки осей GUI не работает в функции обратного вызова - Matlab
Во-первых, программно, я создал и axes
объект, то пустой scatter
который впоследствии заполняется данными из другой функции обратного вызова guiList
который отлично работает Однако, как говорится в моем названии, я не могу получить hold
работать, когда я сдаю axes_h
справиться с моей функцией обратного вызова 'guiHold`.
Вот мой скриптовый код для axes
а также scatter
:
%% create empty scatter plot with panel
e_panel_position = [0.1 0.3 0.5 0.6];
e_panel_h = uipanel('Parent', fig_h, 'Title','Emotion','FontSize',12,'FontWeight', 'bold','BackgroundColor','white','Position',e_panel_position);
axes_position = [0.15 0.12 0.7 0.8];
axes_h = axes('Parent', e_panel_h, 'Position', axes_position);
scatter_h = scatter(axes_h, [],[], 'MarkerEdgeColor',[0 .5 .5], 'MarkerFaceColor',[0 .7 .7],'LineWidth',1.5);
axis(axes_h, [-4 4 -4 4]);
xlabel(axes_h, 'Valence', 'FontSize', 12); % 'FontWeight', 'bold'
ylabel(axes_h, 'Arousal', 'FontSize', 12);
grid on
box on
Вот мой guiHold
функция:
function guiHold(hold_toggle_h, evt, axes_h)
button_state = get(hold_toggle_h,'Value');
if button_state == 1
hold(axes_h, 'on')
%hold on
elseif button_state == 0
hold(axes_h, 'off')
%holf off
end
end
Как вы можете видеть, я пробовал альтернативные версии Hold, чтобы попытаться сделать это.
guiHold
вызывается с помощью кнопки переключения GUI.
РЕДАКТИРОВАТЬ:
Вот мой guiList
функция, которая вызывается при выборе элемента из моего list_h
справиться:
function guiList(list_h, evt, scatter_h)
global predict_valence
global predict_arousal
val = get(list_h, 'value');
a = 100;
x = predict_valence;
y = predict_arousal;
N = length(predict_valence);
for i=1:N
if i == val
set(scatter_h, 'XData', x(i), 'YData', y(i), 'SizeData', a);
end
end
end