Obtain the sorted index vector

32 Ansichten (letzte 30 Tage)
YAHYA AL-MOLIKI
YAHYA AL-MOLIKI am 4 Mär. 2022
Kommentiert: YAHYA AL-MOLIKI am 4 Mär. 2022
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.

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 4 Mär. 2022
Bearbeitet: Bruno Luong am 4 Mär. 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

Weitere Antworten (1)

Arif Hoq
Arif Hoq am 4 Mär. 2022
Bearbeitet: Arif Hoq am 4 Mär. 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

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by