【发布时间】:2012-07-31 09:18:20
【问题描述】:
我想测试文件名的扩展名是否在扩展名列表中。
我在元胞数组上使用 strfind 进行了尝试,但没有看到如何从结果矩阵中获取布尔值。
strfind({'tif'; 'jpg'},'jpg') % should give true
strfind({'tif'; 'jpg'},'bmp') % should give false
第一个结果
[]
[1]
第二个
[]
[]
【问题讨论】:
我想测试文件名的扩展名是否在扩展名列表中。
我在元胞数组上使用 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)
...
【讨论】: