我想测试文件名的扩展名是否在扩展名列表中。
我在单元格数组上使用 strfind 进行了尝试,但没有看到如何从结果矩阵中获取布尔值。
strfind({'tif'; 'jpg'},'jpg') % should give true
strfind({'tif'; 'jpg'},'bmp') % should give false
第一个结果是
[]
[1]
第二个在
[]
[]
您需要做的就是用 any() 包装您的原始代码
>> any(strcmpi({'tif','jpg'},'jpg'))
ans =
1
>> any(strcmpi({'tif','jpg'},'bmp'))
ans =
0
我现在使用 find 解决了它:
[~, ~, ext] = fileparts(imageFile);
ext = strrep(ext, '.', '');
listOfValidExt = {'tif'; 'jpg'};
indices = find(cellfun(@(x) strcmp(x,ext), listOfValidExt), 1);
if ~isempty(indices)
...