sorting an array in a specific order

7 views (last 30 days)
Max
Max on 10 Aug 2022
Commented: Max on 10 Aug 2022
How would I sort array elements in ascending order based on how close they are to a specific value. For example if x=[1 2 2.5 3 4 5] and y= 3.4 how would I make x arrange as [3 4 2.5 2 5 1]?

Accepted Answer

Matt J
Matt J on 10 Aug 2022
Edited: Matt J on 10 Aug 2022
x=[1 2 2.5 3 4 5]; y= 3.4;
[~,is]=sort(abs(x-y))
is = 1×6
4 5 3 2 6 1
x=x(is)
x = 1×6
3.0000 4.0000 2.5000 2.0000 5.0000 1.0000

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!