Compare adjacent elements in a column within array and remove if greater/less than value

9 vues (au cours des 30 derniers jours)
I have a large matrix (15882x9). Data has been imported from excel. I would like to compare adjacent elements within each column, and if the difference is greater than 100 then I want to delete that entire row. (This is an issue with our data collection, unsure why)
I have tried the filloutliers function but this does not quite remove everything I need.
e.g. simple example below... if difference between adjacent elements within column is <15 then delete row.
array = [1 2 3 4; 5 1 20 3; 2 5 4 1]
For column 3, 20 - 3 = 17 so I would like to delete the second row, so now array is:
array = [1 2 3 4; 2 5 4 1]
Thanks for your help :)

Réponse acceptée

Walter Roberson
Walter Roberson le 12 Juil 2018
threshold = 100;
array( [false; any(diff(array) > threshold,2)], :) = [];

Plus de réponses (0)

Catégories

En savoir plus sur Multidimensional Arrays dans Help Center et File Exchange

Produits


Version

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by