How to replace certain numbers in an array

Could anybody help me solve the problem please? I have a sample array a=[6 8 7 4 12 10 16 11], I would like to replace all numbers greater than 10(>10) to be 20-a, the expected result should be a=[6 8 7 4 8 10 4 9]. Thank you very much.

 Akzeptierte Antwort

Image Analyst
Image Analyst am 2 Jan. 2018

1 Stimme

Try this:
a=[6 8 7 4 12 10 16 11]
% Find indexes more than 10:
indexesToReplace = a > 10;
% Replace the index values with 20 minus the original number (20-a)?
a(indexesToReplace) = 20 - a(indexesToReplace)

Weitere Antworten (1)

KSSV
KSSV am 2 Jan. 2018
Bearbeitet: KSSV am 2 Jan. 2018

1 Stimme

a=[6 8 7 4 12 10 16 11] ;
a(a>10) = 20-a(a>10) ;

2 Kommentare

MS SIM
MS SIM am 2 Jan. 2018
Thanks for the answer. However, this replaces the number greater than 10 with 20. How about replacing the number with 20 minus the original number (20-a)?
KSSV
KSSV am 2 Jan. 2018
Bearbeitet: KSSV am 2 Jan. 2018
okay....a was the original number.....edited the answer.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 2 Jan. 2018

Bearbeitet:

am 2 Jan. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by