MATLAB Answers

Input and Output GUI using Guide

8 views (last 30 days)
Dina Ashraf
Dina Ashraf on 21 May 2020
Commented: Geoff Hayes on 25 May 2020
Hello everyone,
I created a GUI to take around 12 inputs from the user then I took those inputs and stored them in variables.
Some of those variables created are based on the user's selection of a radiobutton, for example if a user selects radiobutton x I store the value 3 in a variable called m.
Example: % --- Executes on button press in radiobutton16.
function radiobutton16_Callback(hObject, eventdata, handles)
m=0
Now I would like to write a code to process those variables and perform operations on them. However every time I do that I get errors like this one:
Undefined function or variable 'a0'.
Error in Input_GUI_2>Input_GUI_2_OpeningFcn (line 59)
z=a0-b0
Error in gui_mainfcn (line 220)
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});
Error in Input_GUI_2 (line 42)
gui_mainfcn(gui_State, varargin{:});
Even though a0 is a variable created later on in the code: a0=get(handles.edit13,'string')
Can anybody please tell me what to do now?
Thanks a lot in advance.

  0 Comments

Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 21 May 2020
Dina - when you create a variable like m within your callback function, it is local variable to that function and is not accessible by any other callbacks. That would explain why you are getting errors like Undefined function or variable 'a0'. If you would like to share data between callbacks then you could use the handles structure to store that data. For example,
Example: % --- Executes on button press in radiobutton16.
function radiobutton16_Callback(hObject, eventdata, handles)
handles.m = 0;
guidata(hObject, handles); % <-- this is needed to update handles with the new field
Your other callbacks would then check to see if the m field exists in handles and then access it in the usual way. For example,
function someother_Callback(hObject, eventdata, handles)
if isfield(handles, 'm')
data = handles.m;
% do something with data
end
Note that if your variable just represents the state of a radio button, then you could just check (from your other callbacks) what the state of that button is using the handles structure (whose fields are handles to the controls).

  3 Comments

Dina Ashraf
Dina Ashraf on 22 May 2020
Now that I have stored the user input data into variables. Do you know how I can use that data to build a program that performs calcalutions on it then display it as an output in another GUI window?
I have no idea where I can write the code without it messing with my GUI functions in the same .m file.
Pardon me I'm new to creating GUIs with guide.
Thank you so much.
Geoff Hayes
Geoff Hayes on 25 May 2020
Dina - try creating a function that will take the user data as input parameters and then have it return whatever you want to display in the text (or other) control of the GUI.

Sign in to comment.

More Answers (0)

Products


Release

R2018a