How to Change element values of an array with conditions?

18 vues (au cours des 30 derniers jours)
satheeshkumar satheeshkumar M
Commenté : Fangjun Jiang le 11 Nov 2019
If suppose, A=[2 3 4 7 9 10] i want to use if condition to add (e.g) 10 to the elements less than 6 (< 6) of array A, so that my array should convert into A=[12 13 14 7 9 10]. how can i achieve?

Réponse acceptée

Adam
Adam le 31 Oct 2017
Modifié(e) : Adam le 31 Oct 2017
A( A < 6 ) = A ( A < 6 ) + 10
Sadly Matlab doesn't have a neat += operator so you have to do the above rather ugly equivalent, though I would often pull the logical indexing out into its own variable.
  3 commentaires
Erik Elander Aman
Erik Elander Aman le 10 Nov 2019
Is there a similar solution for when you would like to alter in an interval within two limits, eg. adding 10 to each value between 4 and 6 in the array?
Fangjun Jiang
Fangjun Jiang le 11 Nov 2019
index=and(A>4,A<6);
A(index)=A(index)+10;

Connectez-vous pour commenter.

Plus de réponses (1)

Fangjun Jiang
Fangjun Jiang le 31 Oct 2017
Play golf?
A=A+10*(A<6)
  2 commentaires
satheeshkumar satheeshkumar M
smartly working, thanks
Eliot Bethke
Eliot Bethke le 20 Mar 2019
I prefer this answer because you can assign the result of the operation to a different variable. Also works if you wanted to multiply instead of add:
S = A .* 10 .* (A < 6);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Simulink Functions dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by