Callback to edit box to update variable

I have begun my program by defining a variable Ground, where Ground=40. I have a ui text field corresponding to this variable, and when a user edits the text field by typing a number, I want my callback function to update the value of the Ground variable in my workspace. How can this be done? Below is what I have written, which does not work.
Ground=40;
ground_control=uicontrol('Style','edit', 'String', num2str(Ground), 'Position', [315, 70, 70, 20], 'Callback', {@change_ground});
function [Ground] =change_ground(hObject, eventdata, handles)
Ground=str2double(hObject);
end

Answers (1)

It's not typically necessary (or a good idea) to have data in a UI mirrored in the base workspace, but here's how you can do it (for educational purposes).
Ground=40;
ground_control=uicontrol('Style','edit', 'String', num2str(Ground), 'Position', [315, 70, 70, 20], 'Callback', {@change_ground});
function change_ground(hObject, eventdata, handles)
Ground = str2double(get(hObject,'String'));
assignin('base','Ground',Ground);
end
Typically your uicontrol would be part of a larger GUI that would be handling all the data, so that's why you wouldn't need to do this.

Categories

Find more on Environment and Settings in Help Center and File Exchange

Products

Release

R2019b

Asked:

on 21 Feb 2022

Answered:

on 22 Feb 2022

Community Treasure Hunt

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

Start Hunting!