How to sort a vector according to another vector?
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    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
0 comentarios
Respuesta aceptada
  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.
0 comentarios
Más respuestas (0)
Ver también
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!

