-1

如何在 matlab 中执行此操作;

ismember(file_names,['*.mp4'])
4

2 回答 2

5

我会这样做regexp,像这样:

result = ~cellfun(@isempty,(regexp(file_names,'\.mp4$')));

例如,

file_names = {'aaa.mp4','bbb.mp3'};

result =

     1     0
于 2013-08-11T16:37:53.633 回答
3

使用正则表达式 (regexp)

这可以通过以下方式轻松实现regexp

tf = ~cellfun('isempty', regexp(file_names, '.*\.mp4'));

如果要强制模式匹配文件名的开头或结尾,则应分别添加插入符号 ( ^) 或美元符号 ( $),例如:

%// Match pattern at the beginning of the filename
tf = ~cellfun('isempty', regexp(file_names, '^.*\.mp4'));

%// Match pattern at the end of the filename
tf = ~cellfun('isempty', regexp(file_names, '\.mp4$'));

替代方法(strfind)

如果您的搜索模式足够简单,您可以strfind改用:

tf = ~cellfun('isempty', strfind(file_names, '.mp4'));

请注意,此方法不允许您搜索更复杂的模式,也不允许检查条件(通常),例如字符串末尾的模式的外观......

于 2013-08-11T16:36:39.833 回答