Simple GUI not working, error Varagout feval(...

3 vues (au cours des 30 derniers jours)
Dan
Dan le 19 Jan 2012
hello, I am relatively new to matlab and am trying to teach myself how to create and use GUIs. I am working on a simple test GUI that simply plots a 3D graph. However I cannot seem to get the popup menu to work. I get the following errors and am not sure what they mean.
??? Reference to non-existent field 'output'.
Error in ==> TESTGUI1>TESTGUI1_OutputFcn at 79
varargout{1} = handles.output;
Error in ==> gui_mainfcn at 265
feval(gui_State.gui_OutputFcn, gui_hFigure, [],
gui_Handles);
Error in ==> TESTGUI1 at 42
gui_mainfcn(gui_State, varargin{:});
Not sure what this all means as it was code that came pre-coded into the GUI guide. Any suggestions? I have pasted a copy of my code below if that helps. THANKS!
Dan
function varargout = TESTGUI1(varargin)
% TESTGUI1 MATLAB code for TESTGUI1.fig
% TESTGUI1, by itself, creates a new TESTGUI1 or raises the existing
% singleton*.
%
% H = TESTGUI1 returns the handle to a new TESTGUI1 or the handle to
% the existing singleton*.
%
% TESTGUI1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in TESTGUI1.M with the given input arguments.
%
% TESTGUI1('Property','Value',...) creates a new TESTGUI1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before TESTGUI1_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to TESTGUI1_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 TESTGUI1
% Last Modified by GUIDE v2.5 19-Jan-2012 13:32:40
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @TESTGUI1_OpeningFcn, ...
'gui_OutputFcn', @TESTGUI1_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 TESTGUI1 is made visible.
function TESTGUI1_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 TESTGUI1 (see VARARGIN)
% Choose default command line output for TESTGUI1
handles.peaks=peaks(35);
handles.membrane=membrane;
[x,y]=meshgrid(-8:0.5:8);
r=sqrt(x.^2+y.^2)+eps;
sinc=sin(r)./r;
handles.sinc=sinc;
handles.current_data=handles.peaks;
surf(handles.current_data);
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes TESTGUI1 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = TESTGUI1_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;
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu1
val=get(hObject,'Value');
str=get(hObject,'String');
switch str(val)
case 'Peaks' %user selects peaks
handles.current_data=handles.peaks;
case 'Membrane' %User selects membrane
handles.current_data=handles.membrane;
case 'Sinc' %User selects sinc
handles.current_data=handles.sinc;
end
guidata(hObjects,handles);
% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in Pushbutton1.
function 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)
%Display Surface Plot of the Currently Selected data
surf(handles.current_data);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%Display Mesh Plot of the Currently Selected data
mesh(handles.current_data);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%Display Contour Plot of the Currently Selected data
contour(handles.current_data);
THANKS Again for your help!

Réponses (1)

Walter Roberson
Walter Roberson le 19 Jan 2012
In TESTGUI1_OpeningFcn, change the line
surf(handles.current_data);
to
handles.output = surf(handles.current_data);

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by