如果我使用listdlg提供选项,如何引用提供给用户的不同选项

时间:2013-11-15 17:31:52

标签: string matlab matlab-figure matlab-guide

%% LIST
physlist = {'Acceleration','Fluid Mechanics','Force','Energy','Velocity','Work'};
%% LISTDLG
[sel, ok] = listdlg('PromptString','Please select a Subtopic below:', 'ListString', physlist, 'selectionmode', 'single' );

如果用户选择'Acceleration',这是第一选择,我可以简单地使用if ok == 1并运行代码,但如果用户选择其他选项会怎样?我如何在同一个脚本中引用该选项?

我不能再使用ok == 1了吗?因为我已经用它来加速了。

如果用户做出选择,我是否可以分别引用每个选项并处理其代码?

1 个答案:

答案 0 :(得分:1)

listdlg的第一个输出参数(变量sel)包含所选项的索引。例如,如果您选择'Energy',则会获得sel==4

第二个输出参数(ok)是一个布尔值,表示您是单击“确定”还是“取消”。

检查switch后,我会建议ok。类似的东西:

[sel, ok] = listdlg(...);

if ok,
    switch lower(physlist{sel})
      case 'acceleration'
         % something for acceleration
      case 'fluid mechanics'
         % more code
      % ...
      otherwise
        error('Invalid selection!')
    end
end