Включение / выключение удержания ручки осей 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

0 ответов

Другие вопросы по тегам