How to sort a vector according to another vector?

4 visualizaciones (últimos 30 días)
Cantor Set
Cantor Set el 12 de Feb. de 2020
Respondida: dpb el 12 de Feb. de 2020
I am trying to write a code that will do thr following:
Input:
R=[a b c d]'; ranks=[1 2 3 1];
a has rank 1; b has rank 2;
c has rank 3; and d has rank 1;
I want to re-arrange R st that those elements whose ranks 1 are listed first followed by those who ranks 2 and so on.
So the output be:
R=[a d b c]'
This is a special case in other cases the vectors R and ranks will be very huge so I am trying to find a code that is efficient
Thank you

Respuesta aceptada

dpb
dpb el 12 de Feb. de 2020
R=['a':'d'].'; % So can identify elements of R
% the engine
[~,ix]=sort(ranks);
% the result...
>> R(ix)
ans =
4×1 char array
'a'
'd'
'b'
'c'
>>
The elements of R will have to be single values to be stored in an array or R would need be a cell array to hold other objects.

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by