2012-01-21 60 views
1

有誰知道如何解決創建基於MATLAB列函數

removing duplicates - ** only when the duplicates occur in sequence

在八度

?接受的解決方案是使用diff

Matlab的diff似乎表現不同於八度的,並且不接受字符。

任何想法是讚賞。

+4

字符可以表示爲一個int,你嘗試過的類型轉換? – AlwaysWrong

+0

謝謝你的想法... diff(),它不會有任何區別,無論它是char還是int ...都可能是一個想法。嘗試 – Atmocreations

回答

1

您可以將字符轉換爲它們的ASCII碼,然後運行該解決方案給出:

a = {'d' 'f' 'a' 'g' 'g' 'w' 'a' 'h'}; 
aa = cellfun(@(c) c-0, a);    %# convert to ASCII 

idx = find(diff(aa) == 0); 
a([idx idx+1]) = []; 
+0

,這正是我今天所做的 - 現在有點前。謝謝! =) – Atmocreations

+0

@自慰:不客氣。將來,如果您發現問題,您可以爲自己的問題發佈解決方案。 – Amro

+0

謝謝,我知道這件事。但「一直錯誤」已經間接地給出了答案...... – Atmocreations