2016-11-23 6 views
1

Как удалить элементы из массива с разницей в 3 или менее между последующими элементами? НапримерУдаление некоторых элементов из массива, который соответствует условию

A=[3 6 10 14 17 20] 

к этому

B=[3 10 14 20] 

Я считаю, что я могу использовать diff, но в каком контексте я должен использовать его для достижения этой цели?

ответ

3

Вы можете использовать diff, а затем сравнить это с 3. Затем вы можете построить логический массив (который включает в себя первое значение по умолчанию) и использовать его для индексации в A.

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

В вашем примере, хотя, разница между 17 и 20 равно 3, так что бы удалить 20.

Смежные вопросы