How to remove data points above or below a value in an array, nicely!

In my array (PRE_A, imported from a csv), I want to remove any data point over 900 or below 750, so have written the code below. How do I write this in less lines of code?
Thank you :)
PRE_A = PRE_A(PRE_A(:,2) > 750, :);
PRE_A = PRE_A(PRE_A(:,3) > 750, :);
PRE_A = PRE_A(PRE_A(:,4) > 750, :);
PRE_A = PRE_A(PRE_A(:,5) > 750, :);
PRE_A = PRE_A(PRE_A(:,6) > 750, :);
PRE_A = PRE_A(PRE_A(:,7) > 750, :);
PRE_A = PRE_A(PRE_A(:,8) > 750, :);
PRE_A = PRE_A(PRE_A(:,9) > 750, :);
PRE_A = PRE_A(PRE_A(:,2) < 920, :);
PRE_A = PRE_A(PRE_A(:,3) < 920, :);
PRE_A = PRE_A(PRE_A(:,4) < 920, :);
PRE_A = PRE_A(PRE_A(:,5) < 920, :);
PRE_A = PRE_A(PRE_A(:,6) < 920, :);
PRE_A = PRE_A(PRE_A(:,7) < 920, :);
PRE_A = PRE_A(PRE_A(:,8) < 920, :);
PRE_A = PRE_A(PRE_A(:,9) < 920, :);

 Réponse acceptée

OCDER
OCDER le 2 Août 2018
Modifié(e) : OCDER le 2 Août 2018
I think this is what you're trying to do:
GoodRow = ~any(PRE_A(:, 2:9) <= 750 | PRE_A(:, 2:9) >= 920, 2)
PRE_A = PRE_A(GoodRow, :)
Translation:
GoodRow = ~ any (PRE_A(:, 2:9) <= 750 | PRE_A(:, 2:9) >= 920, 2)
Good rows do NOT have any value <= 750 OR any value >= 920, across all columns

4 commentaires

Hmm thank you for your help but that just resulted in an empty matrix
GoodRow =
logical
0
PRE_A =
0×17 empty double matrix
Oops, I forgot the ":, " right after the PRE_A. The answer is edited above.
PRE_A(2:9) --> PRE_A(:, 2:9)
You're a gem! Thankyou :)
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Question posée :

le 2 Août 2018

Commenté :

le 2 Août 2018

Community Treasure Hunt

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

Start Hunting!

Translated by