Test every element in matrix

I have an M x N matrix, where I want to test whether each element is greater than some constant a, and if it is, perform some arithmetic to it. The only way I can think of doing this is using 2 For loops nested to select each element and an If statement to perform checking. Is this the best I can do?

 Réponse acceptée

Tigersnooze
Tigersnooze le 19 Sep 2011

0 votes

You can say something like this, instead of using a loop (assuming the matrix is called A):
A(A > a) = A(A > a) + arithmetic.
"Vectorizing" like this won't have significant speed advantages with smaller matrices, but when the matrix gets bigger you'll see huge time savings. Just a heads up for the future.

4 commentaires

Leor Greenberger
Leor Greenberger le 19 Sep 2011
Thank you! this is perfect!
Leor Greenberger
Leor Greenberger le 19 Sep 2011
How would I go about doing this for a matrix A where I want to check whether each element == any value in some vector b.
A(A == b) doesn't work (didn't think it would)
Sean de Wolski
Sean de Wolski le 19 Sep 2011
Leor, look at ismember:
doc ismember
Leor Greenberger
Leor Greenberger le 19 Sep 2011
Thank you, sir!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by