我有个愚蠢的问题我想知道在以下情况下选择了多少个文件:
[fileName, pathName, filterIndex] = uigetfile({'*.*';'*.xls';'*.txt';'*.csv'}, 'Select file(s)', 'MultiSelect', 'on');
字符串当有1个以上时,我可以做length(fileName);但是当只有一个被选中的时候,这给了我fileName的实际长度(字符数):/
fafcakar1#
你应该先检查一下iscell(filename)。
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的检查,正如评论中所建议的那样。
uigetfile
vd8tlhqk2#
filename = cellstr(filename)是另一个(更简单)的解决方案,如果选择了一个或多个文件,则总是接收一个独立的文件名单元格
2条答案
按热度按时间fafcakar1#
你应该先检查一下
iscell(filename)
。字符串
更新:增加了对取消
uigetfile
的检查,正如评论中所建议的那样。vd8tlhqk2#
filename = cellstr(filename)
是另一个(更简单)的解决方案,如果选择了一个或多个文件,则总是接收一个独立的文件名单元格