How to sort a vector according to another vector?
    조회 수: 5 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  dpb
      
      
 2020년 2월 12일
        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
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

