GUI轴处理保持开/关不在回调函数内工作 - Matlab

时间:2015-10-27 10:28:02

标签: matlab uicontrol

首先,以编程方式,我创建了axes对象,然后是一个空的scatter,随后用另一个名为guiList的回调函数中的数据填充,该工作正常。但是,正如我的标题所述,当我将hold句柄传递给我的回调函数'guiHold`时,我似乎无法使axes_h函数正常工作。

以下是axesscatter的脚本代码:

%% 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来尝试制作它 发生。

使用GUI切换按钮调用

guiHold

编辑:

以下是我从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 个答案:

没有答案