matlab: uigetfile 包含一个或多个文件

Art*_*Art 3 matlab file

我有一个愚蠢的问题。我想知道之后选择了多少个文件:

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

当超过1个时,我可以做length(fileName);

没关系。但是,当只选择一个时,这给了我文件名的实际长度(字符数量):/

coo*_*tea 5

您可能应该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
Run Code Online (Sandbox Code Playgroud)

uigetfile更新:按照评论中的建议添加了取消检查。