从符合条件的数组中删除某些元素
Removing certain elements from an array that fit a condition
如何从数组中删除后续元素之间相差不超过 3 的元素?例如
A=[3 6 10 14 17 20]
至此
B=[3 10 14 20]
我相信我可以使用 diff
但我应该在什么情况下使用它来实现这一点?
您可以使用 diff
然后将其与 3 进行比较。然后您可以构造一个逻辑数组(默认情况下包含第一个值)并使用它来索引 A
.
tokeep = [true, diff(A) > 3];
B = A(tokeep);
不过在您的示例中,17 和 20 之间的差值为 3,因此将删除 20。
如何从数组中删除后续元素之间相差不超过 3 的元素?例如
A=[3 6 10 14 17 20]
至此
B=[3 10 14 20]
我相信我可以使用 diff
但我应该在什么情况下使用它来实现这一点?
您可以使用 diff
然后将其与 3 进行比较。然后您可以构造一个逻辑数组(默认情况下包含第一个值)并使用它来索引 A
.
tokeep = [true, diff(A) > 3];
B = A(tokeep);
不过在您的示例中,17 和 20 之间的差值为 3,因此将删除 20。