MATLAB Answers

GUI: Can't access data from another callback function with handles

7 views (last 30 days)
Peter Smith
Peter Smith on 30 Aug 2019
Commented: Peter Smith on 3 Sep 2019
I'm using GUIDE, and I've imported data like this:
function control_browse_button_Callback(hObject, eventdata, handles)
% hObject handle to control_browse_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of control_browse_button
[control_file control_pathname] = uigetfile({'*.xlsx'}, 'File Selector');
set(handles.control_filename,'String', control_file);
[control_data control_labels] = xlsread(control_file);
handles.control_data = control_data;
handles.control_labels = control_labels;
And then I attempted to access control_labels:
function loadfile_button_Callback(hObject, eventdata, handles)
% hObject handle to loadfile_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of loadfile_button
for i = 3:size(handles.control_labels,1)
ctrl_labels{i-2} = handles.control_labels{i,1};
end
....
%(rest of the code for this callback)
...
But I'm getting the error:
Reference to non-existent field 'control_labels'
Am I not using handles properly? How should I access control_labels from another callback function?
Thanks!

  1 Comment

Rik
Rik on 31 Aug 2019
It's also a good idea to initialize the field when starting the GUI, and trigger an error if the user clicks the load button before the control browse button.
@G A: please move your answer to the answer section.

Sign in to comment.

Accepted Answer

G A
G A on 1 Sep 2019
G A on 31 Aug 2019 at 8:38
Put the line
guidata(hObject, handles);
at the end of your function control_browse_button_Callback.
Have a look here:
doc guidata

More Answers (0)

Products


Release

R2013b

Community Treasure Hunt

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

Start Hunting!

Translated by