matlab:带有一个或多个文件的uigetfile

suzh9iv8  于 10个月前  发布在  Matlab
关注(0)|答案(2)|浏览(89)

我有个愚蠢的问题我想知道在以下情况下选择了多少个文件:

[fileName, pathName, filterIndex] = uigetfile({'*.*';'*.xls';'*.txt';'*.csv'}, 'Select file(s)', 'MultiSelect', 'on');

字符串
当有1个以上时,我可以做length(fileName);
但是当只有一个被选中的时候,这给了我fileName的实际长度(字符数):/

fafcakar

fafcakar1#

你应该先检查一下iscell(filename)

[fileName, pathName, filterIndex] = uigetfile({'*.*';'*.xls';'*.txt';'*.csv'}, 'Select file(s)', 'MultiSelect', 'on');

if isequal(fileName, 0)
    disp('User selected Cancel');
else
    if iscell(fileName)
        nbfiles = length(fileName);
    elseif ~isempty(fileName)
        nbfiles = 1;
    else
        nbfiles = 0;
    end
end

字符串
更新:增加了对取消uigetfile的检查,正如评论中所建议的那样。

vd8tlhqk

vd8tlhqk2#

filename = cellstr(filename)
是另一个(更简单)的解决方案,如果选择了一个或多个文件,则总是接收一个独立的文件名单元格

相关问题