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

comparedifferenceMATLABoutlieroutliers

I have a large matrix (15882×9). 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 🙂

Best Answer

threshold = 100;
array( [false; any(diff(array) > threshold,2)], :) = [];