Как реализовать подстановочный знак в функции ismember в matlab?
Как я могу сделать реализацию, делая это в Matlab;
ismember(file_names,['*.mp4'])
2 ответа
Решение
Я бы сделал это с regexp
, как это:
result = ~cellfun(@isempty,(regexp(file_names,'\.mp4$')));
Например,
file_names = {'aaa.mp4','bbb.mp3'};
дает
result =
1 0
Использование регулярных выражений (регулярное выражение)
Это может быть легко достигнуто с 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'));
Обратите внимание, что этот метод не позволяет вам искать более сложные шаблоны или проверять условия (тривиально), такие как появление шаблона в конце строки...