2014-08-27 2 views
0

Необходимо исключить номера из строки и возвращает клеточные массивы строк в MATLABисключать цифры из строки с помощью Regexp в MATLAB

e.g str = 'abc76.5_pol0.00_Ev0.3' 

output {'abc','pol','Ev'} 

Строка не является специфичной для «а» и т.д., это может быть CHAR длинного

+0

Могут ли быть символы тоже в строке, например - '' abc $$ 76.5_pol0.00_Ev0.3'' возможно? – Divakar

+0

Нет Символов между буквами и цифрами – IntelK

+0

Хорошо, между цифрами может быть или просто где-нибудь в строке? – Divakar

ответ

4

Используйте регулярное выражение.

str = 'abc76.5_pol0.00_Ev0.3'; 
C = regexp(str, '[a-zA-Z]*', 'match'); 
+0

Решение работало нормально – IntelK

2

Это решение, которое я нашел

output = regexp(str, '[^a-zA-Z]', 'split'); 
output(cellfun(@isempty,output)) = []; 
+0

Решение работает отлично – IntelK

1

Вы также можете использовать strsplit с RegularExpression опцией.

C = strsplit(str, '[^a-zA-Z]', 'DelimiterType', 'RegularExpression') 
+0

Я считаю, что strsplit является функцией, добавленной в последних версиях MATLAB, я использую R2010b, и эта функция недоступна – IntelK

+0

Ваше решение очень похоже на мое, но я не понимаю, почему вы получаете пустую ячейку в конце 'C'. – Jommy

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