Как реализовать подстановочный знак в функции 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'));

Обратите внимание, что этот метод не позволяет вам искать более сложные шаблоны или проверять условия (тривиально), такие как появление шаблона в конце строки...

Другие вопросы по тегам