我是matlab的新手,我坚持使用回调函数来绘制工作区中的数据。在我的代码中,按钮1和2允许我将数据导入工作空间('importTac'和'importref'是单独的m.files,用于将数据导入工作空间,它们运行良好)。
我的问题是如何通过点击pushbutton_3来绘制工作区中的数据?
function KinA
%Configure window
h.fig = figure('MenuBar', 'none','units','pixels','Position', [0 0 1280 750],... % [x,y,width, height]
'name','KinA | Kinetic Analysis','numbertitle','off','Resize', 'off');
tgroup = uitabgroup('Parent', h.fig);
% Define tabs
tab1 = uitab('Parent', tgroup, 'Title', '1| IMPORT DATA');
tab2 = uitab('Parent', tgroup, 'Title', '2| Dynamic parameters');
tab3 = uitab('Parent', tgroup, 'Title', '3| Dynamic plots');
tab4 = uitab('Parent', tgroup, 'Title', '4| Volume of distribution, DVR');
%CONTENT ON TAB1: importdata, plot TAC and
handles.button_1 = uicontrol('Parent', tab1, 'Style','pushbutton',...
'String','Import TACs','Position',[20 650 120 25], 'Callback', 'importTac'); % [x,y,width, height]
handles.button_2 = uicontrol('Parent', tab1, 'Style','pushbutton',...
'String','Import reference','Position',[20 620 120 25], 'Callback', 'importRef'); % [x,y,width, height]button_importReference = uicontrol
handles.button_3 = uicontrol('Parent',tab1, 'Style','pushbutton',...
'String','Plot raw data','Position',[20 590 120 25], 'Callback',{@plot_data,handles});
%Define axes
handles.ax1 = axes('Parent', tab1 , 'units', 'pixels', 'Position',[200 450 300 200]);
set(gca, 'tickdir', 'out', 'box', 'off', 'FontSize', 14 ,'Color',[0.8 0.8 0.9]);
xlabel('Time [min]', 'FontSize', 12, 'FontName', 'Arial');
ylabel('Activity [kBq]', 'FontSize', 12, 'FontName', 'Arial');
%Callback function
end
答案 0 :(得分:0)
%evalin()访问工作区中的变量 %回调函数
function plot_data(source,eventdata)
time = evalin('base','xValues');
brain = evalin('base','y1Values');
input = evalin('base','y2Values');
p1=plot(handles.ax1,time,brain);
p2=plot(handles.ax2,time,input);
end