0

我想测试文件名的扩展名是否在扩展名列表中。

我在单元格数组上使用 strfind 进行了尝试,但没有看到如何从结果矩阵中获取布尔值。

strfind({'tif'; 'jpg'},'jpg') % should give true
strfind({'tif'; 'jpg'},'bmp') % should give false

第一个结果是

[]
[1]

第二个在

[]
[]
4

2 回答 2

1

您需要做的就是用 any() 包装您的原始代码

>> any(strcmpi({'tif','jpg'},'jpg'))

ans =

     1

>> any(strcmpi({'tif','jpg'},'bmp'))

ans =

    0
于 2012-08-02T06:28:04.607 回答
0

我现在使用 find 解决了它:

    [~, ~, ext] = fileparts(imageFile);
    ext = strrep(ext, '.', '');
    listOfValidExt = {'tif'; 'jpg'};
    indices = find(cellfun(@(x) strcmp(x,ext), listOfValidExt), 1);
    if ~isempty(indices)
    ...
于 2012-07-31T11:08:42.550 回答