I have two matrices and I would like to create a matrix containing the above threshold value of each element of both matrices

1 view (last 30 days)
I have two matrices of the same size and for each element I would like to do the following:
if the value of the element in matrix2 is above the threshold, keep the value
else assign the value of matrix1 to this element.
Is this possible without for loops?

Accepted Answer

Matt J
Matt J on 15 Jun 2020
Edited: Matt J on 15 Jun 2020
Is this possible without for loops?
Yes. One way is as follows:
mask=(matrix2>=threshold);
result = matrix2.*mask + matrix1.*(~mask);

More Answers (1)

Matt J
Matt J on 15 Jun 2020
Another way,
result=matrix2;
idx=(matrix2<threshold);
result(idx)=matrix1(idx);

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!