[Guide] Pass a variable between two functions using handles.

30 views (last 30 days)
Hello Everyone,
I am incurring error in passing a variable between two functions.
In 1st Function (PushButton):
Where variable (myTable_Selection) is present. i have done following:
myTable_Final.handles = myTable_Selection
guidata(hObject, handles)
But I am unable to recall this variable in another function (PushButton).
myTable_Final = myTable_Final.handles; % Line 515
Error is:
Undefined function or variable 'myTable_Final'.
Error in PFT_GUI>exp_selected_Callback (line 515)
myTable_Final = myTable_Final.handles;
Error in gui_mainfcn (line 95)
Error in PFT_GUI (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in
Error while evaluating UIControl Callback.
Note: I am able to pass all other variables except this myTable_Selection.
Any help would be appreciated :-)
Waqar Ali Memon

Accepted Answer

Steven Lord
Steven Lord on 14 Aug 2019
Each callback function has its own workspace, separate from the rest. Creating a variable in one doesn't automatically create it in others. To share data between those workspaces use one of the techniques illustrated on this documentation page.
The technique you attempted:
myTable_Final.handles = myTable_Selection
guidata(hObject, handles)
looks like the "Store Data Using the guidata Function" approach, but your first line did not affect the handles struct in the workspace of that callback. Something like this should work and should allow you to access the selection in the other callback function's workspace using handles.Selection:
handles.Selection = myTable_Selection;
guidata(hObject, handles)

More Answers (1)

Waqar Ali Memon
Waqar Ali Memon on 14 Aug 2019


Find more on Migrate GUIDE Apps in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!