如何使用索引值来检索相应的名称(字符串)

时间:2017-08-09 13:49:59

标签: matlab matlab-guide

通过使用listdlg可以从列表中选择文件,但它返回相应的索引作为输出,但不返回选择的名称(所选实体的字符串)。如何在输出中获取所选文件的名称?'

例如

[Selection, ok] = listdlg(Name,Value,...);

% selection is nothing but a index of selected entities. 

1 个答案:

答案 0 :(得分:3)

对话框中填充了作为ListString参数值提供的单元格数组。调用listdlg的结果是此cellarray的索引。

请考虑以下代码:

filelist=dir("/home");
S={filelist.name};
[Selection,ok]=listdlg('ListString',S,'SelectionMode','single');
if (ok) filename=cell2mat(S(Selection)) endif

如果选择了项user1,则应输出

filename = user1

<强>更新

SelectionModemultiple时,您可以使用celldisp(S(Selection))。要提取单个项目,请使用S{Selection(i)}i范围从1到length(Selection)

filelist=dir("/home");
S={filelist.name};
[Selection,ok]=listdlg('ListString',S,'SelectionMode','multiple');
if (ok) 
  for i=1:length(Selection)
    disp(S{Selection(i)}) 
  end
endif