2013-12-04 5 views
-1

Я анализирую файл в Matlab, и я хочу найти количество вхождений буквы I (с заглавной буквы). Я смущен тем, как писать регулярное выражение для этого шага. Было бы что-то вроде (lines,'.I.')? Любая помощь будет принята с благодарностью.Reg exp in matlab

ответ

3

Если вы хотите, чтобы подсчитать количество капитала «I находится в файле, если вы прочитали файл в виде строки, вы можете просто сделать это:

count = sum(file_string == 'I'); 

Если, как в данном случае, файл считывается в сотовом строки, один из возможных способов сделать это было бы использовать:

count = sum(strcat(file_cellstr{:}) == 'I'); 

strcat объединит все строки переданных ему в одну строку. Передача file_cellstr{:} на strcat по существу объединяет каждую из ячеек (т. Е. Каждая строка в вашем случае) в одну строку, а затем просматривает ее для буквы «I». Если вы хотите, чтобы найти слово целиком, вы могли бы использовать

count = length(strfind(strcat(file_cellstr{:}),'word')); 

Если вы хотите, соответствия регулярного выражения, вы можете сделать следующее:

count = length(regexp(strcat(file_cellstr{:}),'[a-z]+')); 
+0

Что делать, если я прочитал его в клетку? – user3034460

+0

Вы можете сделать 'length (cell2mat (strfind (file_cellstr, 'I')));' – MrAzzaman

+0

Или, альтернативно, 'count = sum (file_cellstr {:} == 'I');' – MrAzzaman

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