# how can I sort an array of elements corresponding to another array of elements in decreasing order?

578 views (last 30 days)
A123456 on 16 Feb 2016
Edited: Kirby Fears on 16 Feb 2016
A = [0.4049 0.1354 0.0914 0.0578 0.0634 0.0494 0.0494 0.0494 0.0494 0.0494]
B = [1 2 3 4 5 6 7 8 9 10]
So 0.4049 corresponds to 1, 0.1354 corresponds to 2, 0.0914 corresponds to 3 etc. I want A to be sorted in decreasing order and B to be in the order that A has come out in. Sorry I don't know if that is clear.

Kirby Fears on 16 Feb 2016
Edited: Kirby Fears on 16 Feb 2016
Try this out:
% sort A in descending order (decreasing A values)
% and keep the sort index in "sortIdx"
[A,sortIdx] = sort(A,'descend');
% sort B using the sorting index
B = B(sortIdx);
Try consulting the documentation for sort if you have other questions along these lines.
Hope this helps.

dpb on 16 Feb 2016
[A,idx]=sort(A,'descend');
B=B(idx);
doc sort % for details

### 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!

Translated by