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?

 采纳的回答

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 个评论

Thank you! this is perfect!
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)
Leor, look at ismember:
doc ismember
Thank you, sir!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Multidimensional Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by