2014-10-31 4 views
0

아래 예와 같이 3 개의 다른 단추 그룹을 사용하는 MATLAB의 GUI에서 일부 값을 반환하려고했지만 아무 값도 반환되지 않았습니다.MATLAB GUI 함수에서 여러 값을 반환하는 방법

나는 전역 변수도 사용하려고 시도했으나 이것도 작동하지 않았다.

도움을 주시면 감사하겠습니다.

function mainUI(varargin) 

gui_Singleton = 1; 
gui_State = struct('gui_Name',  mfilename, ... 
        'gui_Singleton', gui_Singleton, ... 
        'gui_OpeningFcn', @mainUI_OpeningFcn, ... 
        'gui_OutputFcn', @mainUI_OutputFcn, ... 
        'gui_LayoutFcn', [] , ... 
        'gui_Callback', []); 
if nargin && ischar(varargin{1}) 
    gui_State.gui_Callback = str2func(varargin{1}); 
end 

if nargout 
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 
else 
    gui_mainfcn(gui_State, varargin{:}); 
end 
% End initialization code - DO NOT EDIT 

% --- Executes just before mainUI is made visible. 
function mainUI_OpeningFcn(hObject, eventdata, handles, varargin) 
handles.output = hObject; 

guidata(hObject, handles); 

uiwait(handles.gui); 

% --- Outputs from this function are returned to the command line. 
function varargout = mainUI_OutputFcn(hObject, eventdata, handles) 
    varargout{1} = handles.output; 

% --- Executes when selected object is changed in SensorLocPanel. 
function SensorLocPanel_SelectionChangeFcn(hObject, eventdata, handles) 
    switch hObject 
     ... 
    end 

% --- Executes when selected object is changed in StepTypeSel. 
function StepTypeSel_SelectionChangeFcn(hObject, eventdata, handles) 
    switch hObject 
     ... 
    end 

% --- Executes when selected object is changed in FileSelectPanel. 
function FileSelectPanel_SelectionChangeFcn(hObject, eventdata, handles) 
    switch hObject 
     ... 
    end 

    % --- Executes on button press in buttonRun. 
function buttonRun_Callback(hObject, eventdata, handles) 
    clc; 
    close all; 
%  delete(handles.gui) 
    return; % Quit the program 

% --- Executes during object creation, after setting all properties. 
function buttonChest_CreateFcn(hObject, eventdata, handles) 


% --- Executes during object deletion, before destroying properties. 
function buttonChest_DeleteFcn(hObject, eventdata, handles) 

% --- Executes when user attempts to close gui. 
function gui_CloseRequestFcn(hObject, eventdata, handles) 
    if isequal(get(hObject,'waitstatus'),'waiting') 
     uiresume(hObject); 
     guidata(hObject,handles); 
    else 
     % The GUI is no longer waiting, so destroy it now. 
     delete(hObject); 
    end 

답변

0

gui는 GUIDE로 수행합니까? 이 경우 GUI가 닫힐 때 값을 반환하려면 다음 video tutorial을 사용하는 것이 좋습니다. GUI를 실행하는 동안 GUI에서 다른 작업 영역으로 돌아가고 싶다면 (왜 그런지는 모르겠지만 올바른 이유가 있다고 가정 함) 전역 변수가 적어도 괜찮은 방법이라고 생각합니다. 그러나 전역 변수를 사용하려는 모든 함수에

global <gVars> 

줄을 써야합니다. 전역 변수는 일부 언어의 경우 외부 변수와 비슷한 방식으로 액세스하는 모든 곳에서 액세스 할 수 없습니다. 그러나 전역 변수의 데이터는 전역 작업 공간에 저장되므로 전역 변수를 사용하는 모든 함수에서 현재 값에 액세스 할 수 있습니다.

그러나 정확히 기억한다면 figure에는 UserData이라는 사용자 입력 데이터가있는 필드가 있습니다. 변경하려는 모든 변수가 들어있는 구조체를 정의 할 수 있습니다. 다른 작업 공간의 데이터가 필요하면이 필드에서 데이터를 읽습니다.

+0

감사합니다. Patrik, UserData를 살펴 보겠습니다. – Leverz

+0

감사합니다. Patrik, 개별 기능에 대해 누락 된 전역 변수 선언이 누락 된 곳을 알려주십시오. 그 이후로 혼란스러워 할 기회가있어. – Leverz

관련 문제