Loop which Checks Values of Matrix

27 views (last 30 days)
Adam Rak
Adam Rak on 2 Jun 2022
Edited: Voss on 2 Jun 2022
M = [2.7 , 1.9 , 0.75 , 0.16 , 0.35]
I have a matrix and I would like it to check each element and replace it with a new number or leave the old one depending on the parameter taken.
if element is bigger than c=1 make new element from formula
and if smaller do nothing with that number
I do not know how difficult or simple it is.
I am just starting my adventure with loops and I am counting on help here
  2 Comments
Stephen23
Stephen23 on 2 Jun 2022
"...make new element from formula"
What is the formula?
Adam Rak
Adam Rak on 2 Jun 2022
Edited: Adam Rak on 2 Jun 2022
a formula that uses an element from the matrix M and W
M = [2.7 , 1.9 , 0.75 , 0.16 , 0.35];
W = [a b c d e];
new_number = 2.7*a
new_number2 = 1.9*b
new_number3 = 0.75 (old number because of 0.75<c)
...

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 2 Jun 2022
Edited: Stephen23 on 2 Jun 2022
Forget about loops, learn the MATLAB approach using indexing:
c = 1;
W = [4,3,5,2,3];
M = [2.7,1.9,0.75,0.16,0.35]
M = 1×5
2.7000 1.9000 0.7500 0.1600 0.3500
X = M>c;
M(X) = M(X).*W(X)
M = 1×5
10.8000 5.7000 0.7500 0.1600 0.3500

More Answers (1)

Voss
Voss on 2 Jun 2022
Edited: Voss on 2 Jun 2022
M = [2.7 , 1.9 , 0.75 , 0.16 , 0.35];
c = 1;
for ii = 1:numel(M)
if M(ii) > c
M(ii) = % new element from formula
end
end
(assuming the objective was to learn how for loops work)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!