删除重复项 - **只有当重复按顺序发生时 [英] removing duplicates - ** only when the duplicates occur in sequence
本文介绍了删除重复项 - **只有当重复按顺序发生时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想做以下类似的操作,除了我只想删除g和g,因为它们是相互重复出现的重复项。我也想保持顺序一样。
I would like to do something similar to the following, except I would only like to remove 'g' and'g' because they are the duplicates that occur one after each other. I would also like to keep the sequence the same.
任何帮助将不胜感激!!!
Any help would be appreciated!!!
我在MATLAB中有这个单元格数组:
I have this cell array in MATLAB:
y = { 'd' 'f' 'a' 'g' 'g' 'w' 'a' 'h'}
ans =
'd' 'f' 'a' 'w' 'a' 'h'
推荐答案
我的第一个答案(下)发生错误用于多个重复(感谢grantnz)。这是一个更新版本:
There was an error in my first answer (below) when used on multiple duplicates (thanks grantnz). Here's an updated version:
>> y = { 'd' 'f' 'a' 'g' 'g' 'w' 'a' 'h' 'h' 'i' 'i' 'j'};
>> i = find(diff(char(y)) == 0);
>> y([i; i+1]) = []
y =
'd' 'f' 'a' 'w' 'a' 'j'
旧答案
如果您的单元格向量始终只包含单个字符元素,您可以执行以下操作:
If your "cell vector" always contains only single character elements you can do the following:
>> y = { 'd' 'f' 'a' 'g' 'g' 'w' 'a' 'h'}
y =
'd' 'f' 'a' 'g' 'g' 'w' 'a' 'h'
>> y(find(diff(char(y)) == 0) + [0 1]) = []
y =
'd' 'f' 'a' 'w' 'a' 'h'
这篇关于删除重复项 - **只有当重复按顺序发生时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文