Rearranging a Vector Back Again

4 visualizzazioni (ultimi 30 giorni)
Hello,
I have a vector x:
x =
0 0 1 1 0 1 0 0 1 1
I want arranged having zeros first then ones, so I used this: [x,indices]=sort(x,2)
x =
0 0 0 0 0 1 1 1 1 1
indices =
1 2 5 7 8 3 4 6 9 10
The indices vector is for me to know where each number was displaced from its orignial position to, however, after I finished using the modified x, I would like to rearrange it as its old form again using indices vector, how can I do that?
I used this but it didn't work: sort(indices); x=x(indices)
x =
0 0 0 1 1 0 0 1 1 1

Risposta accettata

the cyclist
the cyclist il 1 Dic 2018
Modificato: the cyclist il 1 Dic 2018
% Original x
x = [0 0 1 1 0 1 0 0 1 1];
% Sorted x
[x_sorted,indices]=sort(x,2);
% Original x recovered from the sorted one
x_redux(indices) = x_sorted
I renamed the variables so that you would not get confused by which x was which.

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by