Вам необходимо хранить выходные данные первой функции где-нибудь, где вторая функция сможет получить к ней доступ. Обычно это делается путем сохранения его либо в каком-либо свойстве пользовательского интерфейса объекта пользовательского интерфейса, либо для сохранения в какой-либо специальной структуре хранения данных, которая прикреплена к объектам фигур и доступна либо с помощью функции guidata
, либо с помощью getappdata
и setappdata
функции.
dat=guidata(hObj);
получает guidata от hObj
родительская фигура
guidata(hObj,dat);
устанавливает guidata родительской фигуры hObj
в dat
Работая с руководством, структура guidata по умолчанию заполняется структурой, содержащей все объекты пользовательского интерфейса, названные в честь их тега. Дополнительные поля могут быть добавлены по мере необходимости. Аргумент handle
от обратных вызовов содержит guidata (hObj).
Три возможных реализации:
1. С guidata
Сохранить загруженные данные с помощью guidata
function load_data_Callback(hObject, eventdata, handles)
% Load the file and save the result in variable S%
% Then: %
handles.S=S;
guidata(hObject,S);
Он будет автоматически загружен обратно во входную переменную handles
function pushbutton2_Callback(hObject, eventdata, handles)
assert(isfield(handles,S),'Load some data first!');
loaded_data=handles.S;
%...%
2. С Userdata свойство (до R2014a)
Сохранение загруженных данных в некоторые пользовательские данные объекта, например, pushbutton2
function load_data_Callback(hObject, eventdata, handles)
% Load the file and save the result in variable S%
% Then: %
set(handles.pushbutton2,'UserData',S,'Enable','on'); %You could disable pushbutton2 by default, until some data has been loaded
Восстановление данных из свойства UserData
function pushbutton2_Callback(hObject, eventdata, handles)
loaded_data=get(hObject,'UserData');
assert(~isempty(loaded_data),'Load some data first!');
%...%
3. С appdata функциями
Сохранить загруженные данные с помощью setappdata
function load_data_Callback(hObject, eventdata, handles)
% Load the file and save the result in variable S%
% Then: %
setappdata(hObject,'loaded_data',S);
Восстановление с помощью getappdata :
function pushbutton2_Callback(hObject, eventdata, handles)
assert(isappdata(hObject,'loaded_data'),'Load some data first!');
loaded_data=getappdata(hObject,'loaded_data');
%...%