2015-10-28 2 views
1

Я новичок в Matlab, и я застрял с функцией обратного вызова для построения данных из рабочей области. В моей кнопке 1 и 2 кода я могу импортировать данные в рабочее пространство ('importTac' и 'importref' - это отдельные файлы m.files для импорта данных в рабочее пространство, и они работают хорошо).UIcontrol кнопка для печати данных из рабочего пространства в matlab

Мой вопрос в том, как я могу построить данные из рабочей области с помощью нажатия кнопки 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

Как '' importTac' и определены importRef'? Они что-нибудь возвращают? –

+0

Благодарим вас за быстрый ответ. importTac и importRef определяются uigetdir и uigetfile. Они отлично работают. Я понял. Я использовал Evalin для доступа к переменным в рабочем пространстве % Функция обратного вызова ТАС участок функция plot_data (источник, данныеСобытие) времени = Evalin ('база', 'xValues'); brain = evalin ('base', 'y1Values'); input = evalin ('base', 'y2Values'); p1 = рисунок (рукоятка.ax1, время, мозг) p2 = рисунок (рукоятка.ax2, время, ввод) конец –

ответ

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 
Смежные вопросы