Matlab:删除数组中的重复连续值

时间:2016-03-18 16:18:22

标签: arrays matlab duplicates

我有这个数组

Y=[618 1 631 618 631 618 631 631 631 618 631 627 631 631]

我希望将其转换为:

[618 1 631 618 631 618 631 618 631 627 631]

我已使用此代码

[~,index] = unique(Y,'first');       
Y(sort(index))

但答案是这样的,它与我想要的结果不同。 ans =    618 1 631 627

你能帮助我吗?

1 个答案:

答案 0 :(得分:5)

这个怎么样? (我真的认为这是重复的,但我没有找到一个有类似标题的 - 我确定内容出现在某个地方)

NewY = Y([1,diff(Y)]~=0)

NewY =  
618 1 631 618 631 618 631 618 631 627 631

您还可以通过执行以下操作在表示法中保存一个字节:

NewY = Y(~~[1,diff(Y)])

根据@AndrasDeak的建议:D