Error :Input argument "handles" is undefined with the axes

Hello,
I tried to implement a simple GUI in MAtlab7.7 like the below
function varargout = start1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @start1_OpeningFcn, ...
'gui_OutputFcn', @start1_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
function start1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
function varargout = start1_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
start=uicontrol('Style','pushbutton','String', 'start', 'Position',[20 400 50 20],'Callback',@startbutton_Callback);
Exit=uicontrol('Style','pushbutton','String', 'Exit', 'Position',[20 20 50 20],'Callback',@pushbutton1_Callback);
function pushbutton1_Callback(hObject, eventdata, handles)
display('Goodbye');
close(gcf);
function startbutton_Callback(hObject, eventdata, handles)
axes(handles.axes2);
plot(sin(0:0.1:10))
It is giving error as
??? Input argument "handles" is undefined.
Error in ==> start1>startbutton_Callback at 91
axes(handles.axes2);
??? Error while evaluating uicontrol Callback

2 comentarios

function startbutton_Callback(...)
handles
See what it echos at command prompt. Does the handles structure have field named axes2. It might be possible that you have given a different tag to it.
Do the other buttons work as expected?

Iniciar sesión para comentar.

 Respuesta aceptada

Only the object and the event are automatically added as input arguments to a callback. If you want handles to be passed as well you need to arrange that. When you use GUIDE to create graphic objects, it automatically puts appropriate code as the callback.
In your situation, where you are using only a single figure, I would recommend removing handles from the argument list, leaving the uicontrol() the way it is, and adding the following as the first line of code in the callback:
handles = guidata(hObject);

5 comentarios

I think this file is made with GUIDE. (The comments are removed not to clutter the question.) And handles should have been assigned values automatically.
Thanks walter it is working now.
GUIDE pre-creates all objects rather than using uicontrol() at run time. The project might have started in GUIDE but it has had manual code added to it. GUIDE never creates callbacks of the form @startbutton_Callback and instead uses strings as callbacks, with the code in the string doing a guidata against the main GUI figure and passing the resulting structure to the real callback.
yes,the file was created using GUIDE and the comments were removed so as to add the real code.
Can I know how to print(display) a value(500) on the image('logo.JPG') when a push button(start) is selected as shown
function startbutton_Callback(hObject, eventdata)
handles = guidata(hObject);
axes(handles.axes2);
imshow('logo.JPG');
a1=str2num('500');
How to set properties(like position,size.colour,..)of the number to be displayed on the image.
text() it into position.
If you do not have any existing plot then image() and imagesc() and imshow() use row and column counts as the x and y coordinates so use those for your x and y for text() purposes. Just watch out for whether (1,1) is at the top left or at the bottom left.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 15 de Mzo. de 2014

Comentada:

el 15 de Mzo. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by