我有一个MATLAB GUI,它在弹出菜单中显示基本工作区中的所有变量名称。然后,用户可以选择变量。然后将此变量传递给函数。我的问题是我找不到从弹出菜单中获取变量值的方法。我得到一个单元格,我将其转换为字符串。
data = get(handles.popupmenu1,'String');
data = data{1};
问题是,如果变量名为n,那么当我需要它返回没有引号时,这将返回'n',带引号。所以,当我试图获得该值时,它不起作用。
data = evalin('base','data');
如何从字符串中删除引号?
答案 0 :(得分:0)
它可能不是最有效的方式,特别是如果弹出菜单中有很多变量,但是你可以将变量存储在GUI的句柄结构中,以及当用户选择变量名时从弹出菜单中它会触发一个开关/案例场景,例如,你在其中使用strcmp来评估变量是什么,从而从句柄结构中获取它的值?
或者也许在弹出菜单的UserData属性中创建某种查找表,以便每个' String'显示在弹出菜单中可以与相应的变量相关,之后你得到它的值,然后可以传递给其他回调?
我现在无法用一个简单的脚本来测试它,这只是一个想法;我明天会检查,除非有人在此期间想出一个想法!
答案 1 :(得分:0)
好的,你可以试试这个:
data = get(handles.popupmenu1,'Value');
使用'Value'
代替'String'
。