通过使用listdlg可以从列表中选择文件,但它返回相应的索引作为输出,但不返回选择的名称(所选实体的字符串)。如何在输出中获取所选文件的名称?'
例如
[Selection, ok] = listdlg(Name,Value,...);
% selection is nothing but a index of selected entities.
答案 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
<强>更新强>
当SelectionMode
为multiple
时,您可以使用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