MATLAB: How to load .mat into GUI

guihandlesimshowloadworspace var

Hi everyone, It occurs an error that i can't understand why.
%load button
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)
[filename,pathname] = uigetfile({'*.mat';'*.*'}, 'Load');
file_load = fullfile(pathname,filename);
set(handles.pushbutton1,'enable','on');
load(file_load);
imshow(handles.E,'Parent',handles.axes3);
imshow(handles.D,'Parent',handles.axes4);
guidata(hObject, handles);
the error is:
??? Error using ==> imshow>validateParent at 307
HAX must be a valid axes handle.
Error in ==> imshow at 221
validateParent(specific_args.Parent)
Error in ==> tent>pushbutton3_Callback at 102
imshow(handles.E,'Parent',handles.axes3);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> tent at 43
gui_mainfcn(gui_State, varargin{:});
Error in ==>
@(hObject,eventdata)tent('pushbutton3_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
What i have made wrong? I believe that my workspace is successfully loaded.

Best Answer

Hi Edward,
hmm, you load the handles? That will probably fail because each time you start your GUI, handles.axes3 and handles.axes4 will be different. I would do the following instead
im = load(file_load);
handles.D = im.handles.D;
handles.E = im.handles.E;
imshow(handles.E,'Parent',handles.axes3);
imshow(handles.D,'Parent',handles.axes4);
This way you leave your (other) handles untouched ...
Titus