Rearranging a Vector Back Again

조회 수: 5 (최근 30일)
Hazem El Sankari
Hazem El Sankari 2018년 12월 1일
댓글: Hazem El Sankari 2018년 12월 1일
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

채택된 답변

the cyclist
the cyclist 2018년 12월 1일
편집: the cyclist 2018년 12월 1일
% 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.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by