Updating 'Base' workspace values using a GUI
显示 更早的评论
Hi all,
I would like to update a set of values in my 'base' workspace via a GUI by getting a user to enter values into separate 'edit text' fields and once a button is clicked, all values are sent to the 'base' workspace and updated. I have tried inputdlg however this is very basic and I'd prefer if someone provided an example using uicontrol or GUIDE.
I don't mind doing this via GUIDE or programmatically, however I'm completely new to this so I'd love to see an example code that I can use which simply allows a user to enter a value, hit a button, and the value then updates in the 'base' workspace.
Please see the example of where I'd like to start via the image.
3 个评论
Original question:
"... which simply allows a user to enter a value, hit a button, and the value then updates in the 'base' workspace."
Dynamically accessing variables in other workspaces is not recommended. It is much more reliable and more efficient to pass variables as input/output arguments.
Craig Saunders
2018-7-30
Stephen23
2018-7-30
@Craig Saunders: the second link in my comment above has many examples.
回答(2 个)
Dennis
2018-7-30
Here is an example how you can achieve what you asked for, however if you decribe what you want to do we probably come up with a better/safer/quicker solution.
tf=uicontrol('style','edit','position',[100,20,100,20]);
button=uicontrol('style','pushbutton','callback',{@badidea,tf});
function badidea(~,~,tf)
A=tf.String;
evalin('base',strcat('A=',A))
end
6 个评论
Craig Saunders
2018-7-30
Dennis
2018-7-30
try to save the function as seperate .m file. I am not sure when Matlab introduced dot notation, this should work with older versions:
function badidea(~,~,tf)
A=get(tf,'String');
evalin('base',strcat('A=',A))
end
Craig Saunders
2018-7-30
Dennis
2018-7-30
You get some kind of error message?
Craig Saunders
2018-7-30
Dennis
2018-7-30
You are copy & pasting everything in command line? Either save and run it as script or save the function as badidea.m and run the other 2 lines.
Image Analyst
2018-7-30
0 个投票
I agree with Stephen that it's not recommended. There are ways to share data. See the FAQ: https://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.28s.29.3F
类别
在 帮助中心 和 File Exchange 中查找有关 Scripts 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!