从字符串中删除引号

时间:2014-08-21 00:28:01

标签: matlab

我有一个MATLAB GUI,它在弹出菜单中显示基本工作区中的所有变量名称。然后,用户可以选择变量。然后将此变量传递给函数。我的问题是我找不到从弹出菜单中获取变量值的方法。我得到一个单元格,我将其转换为字符串。

data = get(handles.popupmenu1,'String');
data = data{1};

问题是,如果变量名为n,那么当我需要它返回没有引号时,这将返回'n',带引号。所以,当我试图获得该值时,它不起作用。

data = evalin('base','data');

如何从字符串中删除引号?

2 个答案:

答案 0 :(得分:0)

它可能不是最有效的方式,特别是如果弹出菜单中有很多变量,但是你可以将变量存储在GUI的句柄结构中,以及当用户选择变量名时从弹出菜单中它会触发一个开关/案例场景,例如,你在其中使用strcmp来评估变量是什么,从而从句柄结构中获取它的值?

或者也许在弹出菜单的UserData属性中创建某种查找表,以便每个' String'显示在弹出菜单中可以与相应的变量相关,之后你得到它的值,然后可以传递给其他回调?

我现在无法用一个简单的脚本来测试它,这只是一个想法;我明天会检查,除非有人在此期间想出一个想法!

答案 1 :(得分:0)

好的,你可以试试这个:

data = get(handles.popupmenu1,'Value');

使用'Value'代替'String'