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?

 채택된 답변

Tigersnooze
Tigersnooze 2011년 9월 19일

0 개 추천

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

Leor Greenberger
Leor Greenberger 2011년 9월 19일
Thank you! this is perfect!
Leor Greenberger
Leor Greenberger 2011년 9월 19일
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 2011년 9월 19일
Leor, look at ismember:
doc ismember
Leor Greenberger
Leor Greenberger 2011년 9월 19일
Thank you, sir!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by