How to Change element values of an array with conditions?

76 ビュー (過去 30 日間)
satheeshkumar satheeshkumar M
satheeshkumar satheeshkumar M 2017 年 10 月 31 日
コメント済み: Fangjun Jiang 2019 年 11 月 11 日
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?

採用された回答

Adam
Adam 2017 年 10 月 31 日
編集済み: Adam 2017 年 10 月 31 日
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 件のコメント
Erik Elander Aman
Erik Elander Aman 2019 年 11 月 10 日
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 2019 年 11 月 11 日
index=and(A>4,A<6);
A(index)=A(index)+10;

サインインしてコメントする。

その他の回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2017 年 10 月 31 日
Play golf?
A=A+10*(A<6)
  2 件のコメント
satheeshkumar satheeshkumar M
satheeshkumar satheeshkumar M 2017 年 11 月 1 日
smartly working, thanks
Eliot Bethke
Eliot Bethke 2019 年 3 月 20 日
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);

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulink Environment Customization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by