从适合条件的数组中删除某些元素

时间:2016-11-23 16:22:58

标签: arrays matlab diff

如何从数组中删除后续元素之间差异为3或更小的元素?例如

A=[3 6 10 14 17 20]

到这个

B=[3 10 14 20]

我相信我可以使用diff,但在什么情况下我应该用它来实现这个目标?

1 个答案:

答案 0 :(得分:3)

您可以使用diff然后将其与3进行比较。然后您可以构造一个逻辑数组(默认情况下包含第一个值)并使用它来索引A

tokeep = [true, diff(A) > 3];
B = A(tokeep);

在你的例子中,17和20之间的差异是3,因此将删除20。