Suppose a vector with element. in Matlab, I can use the following code to sort the vector in descending order as follow:
y=sort(x,'descend'), for example, x=[0.5; 0.4; 0.6; 0.9], then y=[0.9; 0.6; 0.5; 0.4].
I need to Obtain the sorted index vector. Here it will be z=[4; 3; 1; 2]
I need to find z for any arbitrary sorted vector.

 Réponse acceptée

Bruno Luong
Bruno Luong le 4 Mar 2022
Modifié(e) : Bruno Luong le 4 Mar 2022
Use the second output of sort
x=[0.5; 0.4; 0.6; 0.9]
x = 4×1
0.5000 0.4000 0.6000 0.9000
[y,z] = sort(x,'descend')
y = 4×1
0.9000 0.6000 0.5000 0.4000
z = 4×1
4 3 1 2

Plus de réponses (1)

Arif Hoq
Arif Hoq le 4 Mar 2022
Modifié(e) : Arif Hoq le 4 Mar 2022
x=[0.5; 0.4; 0.6; 0.9];
y=sort(x,'descend');
[Lia,Locb] = ismember(y,x);
z=Locb'
z = 1×4
4 3 1 2
% if want as a column vector
out=Locb(:)
out = 4×1
4 3 1 2

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by