2015-04-11 13 views
0

Итак, вот моя проблема:Как найти и заменить строку в Matlab

У меня есть список имен в Matlab в массиве ячеек.

Я автоматически создаю каталоги и .mat файлы для каждого имени.

Моя проблема заключается в том, что некоторые из этих имен содержит «/», и поэтому все идет не так, когда я создаю каталог ...

Так что я пытаюсь найти эффективный способ найти «/» и заменить их.

До сих пор я пытался найти их, используя функцию findstr. Затем он дает мне массив ячеек с индексами, в которых появляется «/». Поэтому, когда имя не содержит никаких «/», оно возвращает {[]}, и когда функция находит его, он возвращает {[i]}. Теперь я хотел бы иметь логическое условие, которое говорит, если findstr не пуст, тогда сделайте что-нибудь. Я пробовал работать с непустой функцией, но он не работает (он никогда не пуст ...)

У кого-нибудь есть решение?

Благодаря

+0

Что бы заменить символ? –

+0

Можете ли вы показать нам код, который вы пробовали до сих пор? – Peanut

ответ

1

Используйте regexprep заменить символ:

list = {'aaa', 'bb/cc', '/dd/'}; 
replace_from = '/'; %// character to be replaced 
replace_to = '_'; %// replacing character 
list_replaced = regexprep(list, replace_from, replace_to); 

дает

list_replaced = 
    'aaa' 'bb_cc' '_dd_' 
+0

Замечательно! Тем временем я нашел аналогичную функцию, которая выполняет задание: strrep (Name_List, «Символ, подлежащий замене», «Замена символа») –

+0

@MrShow Да, 'strrep' аналогичен. Я менее знаком с этим, потому что он появился только в последних версиях Matlab. Но я думаю, что он делает более или менее то же самое, при условии, что искомый шаблон прост –

Смежные вопросы