2013-11-23 4 views
4

MATLAB에서 함수에 대해 의심 스럽습니다.문자열에서 반복되는 인접 문자 제거

내가 예를 들어,이 있습니다

a=['9' '9' '9' '-' '-' '1' '1' '2' '3' '3' '5' '6' '7' '7' '7' '9' '6' '4' '-' '-' '3'] 

a = 

999--1123356777964--3 

그리고 나는이에, 그 변환하려면 :

:

9-123567964-3 

이 반복 인접한 문자를 삭제, 내가 사용하려고

unique(a,'stable') 

그러나이 함수는 인접하지 않은 일부 문자를 삭제합니다.

이 작업을 수행하는 기능이 있습니까?

감사합니다.

+1

제목을 "문자열에서 반복되는 인접한 문자 제거"와 같은 것으로 변경하여 향후 독자가 내 질문을 더 쉽게 찾을 수 있도록 하시길 바랍니다. –

답변

4
a(logical([1 diff(double(a))])) 

설명 : 문자는 double와 숫자로 변환됩니다. 그런 다음 diff은 이전 요소와 다른 각 요소에 0이 아닌 값을 제공합니다. 결과는 a에서 요소를 선택하기 위해 logical index으로 사용됩니다. a의 첫 번째 요소는 항상 유지됩니다 (diffa보다 적은 요소가있는 벡터를 제공합니다).

+0

+1, 매우 영리 =) –

+0

@RobertP. 감사! –

+0

답장과 설명에 감사 드리며, 저에게 많은 도움이되었습니다. –