希望我能让我的问题更清楚:我在MATLAB中创建一个子GUI,由主GUI调用。在这个子GUI中,我将有一个列表框,其中包含各种不同的字符串,例如' Impedance'或者'带宽'。我知道如何让GUI返回这些值,但我真正希望它返回的是,例如,' imp'和' bw'与我在程序中已有的变量名称相匹配。我知道我可以用if else语句实现这个,但是我想知道是否有更简洁的方法来做这个,所以它会自动给我直接对应变量名的字符串。
答案 0 :(得分:0)
listbox实际上返回一个数值,该值是所选项目的索引
然后,如果您希望所选的字符串项首先获得String属性(字符串的单元格数组),那么您可以使用{}
索引。
现在,如果你想要一个不同的字符串来对应每个项目,你所要做的就是用请求的对应关系创建另一个字符串的单元格数组。所以在代码中
set(yourListHandle,'String',{'Impedance','Bandwidth'});
ShortCut = {'imp','bw'};
%//---Manual selction operations---
%//
String = get(yourListHandle,'String');
I = get(yourStringHandle,'Value');
%//the selected item is
String{I}
%//the selected item short cut is
ShortCut{I}
这里需要注意的是,如果您使用列表框重新排序列表,那么您还必须重新排序ShortCut列表。