Verfasst am: 01.06.2016, 08:23
Titel: nested functions im GUI
Hallo
Kann mir jemand weiterhelfen wie ich die Funktionen (im m-file eines GUI) als nested funktions definiere?
Wann schließe ich die Opening und die Output function mit einem end?
Was ist falsch an meinem Code?
Viele Grüße
Code:
functionvarargout = nested_functions_im_GUI(varargin) % NESTED_FUNCTIONS_IM_GUI MATLAB code for nested_functions_im_GUI.fig % NESTED_FUNCTIONS_IM_GUI, by itself, creates a new NESTED_FUNCTIONS_IM_GUI or raises the existing % singleton*.
%
% H = NESTED_FUNCTIONS_IM_GUI returns the handle to a new NESTED_FUNCTIONS_IM_GUI or the handle to % the existing singleton*.
%
% NESTED_FUNCTIONS_IM_GUI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in NESTED_FUNCTIONS_IM_GUI.M with the given input arguments.
%
% NESTED_FUNCTIONS_IM_GUI('Property','Value',...) creates a new NESTED_FUNCTIONS_IM_GUI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before nested_functions_im_GUI_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to nested_functions_im_GUI_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help nested_functions_im_GUI
% Last Modified by GUIDE v2.5 01-Jun-2016 08:47:37
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @nested_functions_im_GUI_OpeningFcn, ...
'gui_OutputFcn', @nested_functions_im_GUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
% --- Executes just before nested_functions_im_GUI is made visible. function nested_functions_im_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 nested_functions_im_GUI (see VARARGIN)
% Choose default command line output for nested_functions_im_GUI
handles.output = hObject;
% Update handles structure guidata(hObject, handles);
a=0;
set(handles.text2,'String',a);
% UIWAIT makes nested_functions_im_GUI wait for user response (see UIRESUME) % uiwait(handles.figure1); end
% --- Outputs from this function are returned to the command line. functionvarargout = nested_functions_im_GUI_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
end
% --- Executes on button press in up. function up_Callback(hObject, eventdata, handles) % hObject handle to up (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a=a+1;
set(handles.text2,'String',a);
end
% --- Executes on button press in down. function down_Callback(hObject, eventdata, handles) % hObject handle to down (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a=a-1;
set(handles.text2,'String',a);
end
Verfasst am: 01.06.2016, 12:41
Titel: Re: nested functions im GUI
Hallo ka404,
Wieso meinst Du denn, dass an Deinem code etwas falsch ist? Bekommst Du eine Fehlermeldung? Falls ja, wäre es für die Beantwortung der Frage nützlich sie zu kennen.
Wenn in einem M-File eine Funktion mit
end
abgeschlossen wird, müssen alle so abgeschlossen werden. Da das
end
für nested Funktions obligatorisch ist, bedeutet auch das Vorhandensein einer solchen Unterfunktion, dass alle Funktionen im File ein
end
zum Schluss bekommen. Andernfalls wird der Code nicht mehr eindeutig interpretierbar.
Sobald ich auf den Botton "up" clicke
bekomme ich diese Meldung:
Zitat:
Error using feval
Undefined function 'up_Callback' for input arguments of type 'matlab.ui.control.UIControl'.
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in nested_functions_im_GUI (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)nested_functions_im_GUI('up_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.