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 commentaires

Stephen23
Stephen23 le 2 Juin 2022
"...make new element from formula"
What is the formula?
Adam Rak
Adam Rak le 2 Juin 2022
Modifié(e) : Adam Rak le 2 Juin 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)
...

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 2 Juin 2022
Modifié(e) : Stephen23 le 2 Juin 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

Plus de réponses (1)

Voss
Voss le 2 Juin 2022
Modifié(e) : Voss le 2 Juin 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)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by