How to get sorted index order for an array?

478 views (last 30 days)
Pablo
Pablo on 19 May 2015
Commented: Anirudha bajaj on 17 May 2022
For example, if I use the sort function on the array [14 8 91 19], I will get [8 14 19 91]. But instead I want [2 1 4 3] which gives me the indices of elements in the original array.
Is there any inbuilt function or does the sort function accept any additional argument to accomplish this? Otherwise I have to write my own function.

Answers (1)

Stephen23
Stephen23 on 19 May 2015
Edited: Stephen23 on 19 May 2015
You can obtain the output indices directly from sort:
>> [out,idx] = sort([14 8 91 19])
out =
8 14 19 91
idx =
2 1 4 3
See the sort documentation for more useful information.

Categories

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

Community Treasure Hunt

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

Start Hunting!