2012-01-21 61 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