2016-04-12 4 views
0

Я создал matlab gui, и я хочу использовать переменную magE из функции (кнопка 1) в функции (кнопка2).Как вызвать переменную, используемую в одной функции в другой функции?

Как это можно назвать?

magE = matrix of 244 rows and 2000 Columns 

Я был бы признателен за любую помощь. Спасибо!

ответ

1

Вы должны использовать hObject обрабатывать для передачи данных между GUI функций и обратных вызовов, все это очень хорошо объяснено в авто сгенерированных комментариев. Пример взят из MATLAB documentation:

% --- Executes just before simple_gui_tab is made visible. 
function my_GUIDE_GUI_OpeningFcn(hObject, eventdata, handles, varargin) 
% This function has no output args, see OutputFcn. 
% hObject handle to figure 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
% varargin command line arguments to simple_gui_tab (see VARARGIN) 
% ... 
% add some additional data as a new field called numberOfErrors 
handles.numberOfErrors = 0; 
% Save the change you made to the structure guidata(hObject,handles) 

Предположим, вам нужно, чтобы получить доступ к области numberOfErrors в кнопочного обратного вызова. Ваш код обратного вызова теперь выглядит примерно так:

% --- Executes on button press in pushbutton1. 
function my_GUIDE_GUI_pushbutton1_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
% ... 
% No need to call guidata to obtain a structure; 
% it is provided by GUIDE via the handles argument 
handles.numberOfErrors = handles.numberOfErrors + 1; 
% save the changes to the structure 
guidata(hObject,handles) 
1

Одним из способов было бы объявить magE как глобальную переменную в главном скрипте. Затем внутри каждой функции вы также должны объявить ее глобальной, чтобы она ссылалась на одну и ту же глобальную переменную.

например.

global magE 
<your_code_here> 

function [] = pushbutton1() 
    global magE 
    %%<your_code_here> 
end 

function [] = pushbutton2() 
    global magE 
    %%<your_code_here> 
end