2012-08-11 3 views
3

문자열의 셀 배열이 지정된 경우 하나의 regexprep 규칙을 만들어 다른 문자열 유형이 특정 숫자로 바뀌도록하고 싶습니다. bad,matlab regexprep 여러 개의 숫자가있는 문자열이 여러 개있는 경우

my_cell = regexprep(my_cell,'ok$','1'); 

하지만 이상적으로 나는 ok1로 대체 될 수 있도록, 하나의 규칙을 구축하고 싶습니다 : 예 :

my_cell = {'ok', 'ok', 'bad', 'broken', 'bad', 'broken', 'ok'}; 

나는 각각의 문자열 유형 하나 하나, 예를 교체하는 방법을 알고 0으로 대체되고 broken-1으로 바뀝니다.

이 작업을 수행하는 방법에 대한 힌트가 있습니까? 여기에 문서가있다

>> my_cell = regexprep(my_cell,{'ok$','bad$','broken$'},{'1','0','-1'}); 

답변

2

: s = regexprep('str', 'expr', 'repstr')

또한 말한다 : http://www.mathworks.co.uk/help/techdoc/ref/regexprep.html

그것은 같은 구문을 제공에 대해 어떻게

+0

첫 번째 정규 표현식 이후에 'broken'을 'br1ken'으로 변경하기 때문에이 예제가 작동하지 않습니다. – Mehrwolf

+0

@Mehrwolf : 고마워요. 나는 그것이 테스트되지 않았다라고 말했다! – MRAB

3

"EXPR 및 repstr 모두 문자열의 셀 어레이 인 경우, expr과 repstr은 같은 수의 요소를 포함해야하고, regexprep은 각 repstr 요소와 expr의 해당 요소를 짝 지어줍니다. "

따라서 당신이 뭔가를 시도 할 수 :

my_cell = regexprep(my_cell, {'^ok$', '^bad$', '^broken$'}, {'1', '0', '-1'}); 

(테스트되지 않은)

+0

내가 추가하지 않은 '^'가이 경우에 필요하지 이후. – AGS

관련 문제