2013-11-23 85 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爲每個不同於前一個元素的元素賦予非零值。結果用作logical index以從a中選擇元素。 a的第一個元素始終保留(請注意,diff給出的元素少於a)。

+0

+1,非常聰明=) –

+0

@RobertP。謝謝! –

+0

感謝您的回答和解釋,這對我有很大的幫助。 –

相關問題