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.

 Accepted Answer

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)

More Answers (1)

KSSV
KSSV on 2 Jan 2018
Edited: KSSV on 2 Jan 2018
a=[6 8 7 4 12 10 16 11] ;
a(a>10) = 20-a(a>10) ;

2 Comments

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 on 2 Jan 2018
Edited: KSSV on 2 Jan 2018
okay....a was the original number.....edited the answer.

Sign in to comment.

Asked:

on 2 Jan 2018

Edited:

on 2 Jan 2018

Community Treasure Hunt

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

Start Hunting!