Permute a vector by a specific ordering
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    David
 il 15 Lug 2014
  
    
    
    
    
    Modificato: Azzi Abdelmalek
      
      
 il 15 Lug 2014
            I have two vectors of the same length x and y, and each value in y corresponds to its value in x by the same index number, e.g.
x=[1 3 2 5 4]
y=[.2 .6 .5 .4 .3]
form the ordered pairs (1, 0.2), (3, 0.6), etc. Now I'd like to sort the vector x, but want to preserve the relationship of the two vectors. One thing I tried but didn't work is
[X I]=sort(x) 
Y=permute(y,I)  % how to permute y by ordering given by I?
This doesn't change the ordering of y at all. For this example the answer should be
X=[1 2 3 4 5]
Y=[.2 .5 .6 .3 .4]
Any ideas?
0 Commenti
Risposta accettata
  Azzi Abdelmalek
      
      
 il 15 Lug 2014
        
      Modificato: Azzi Abdelmalek
      
      
 il 15 Lug 2014
  
      x=[1 3 2 5 4]
y=[.2 .6 .5 .4 .3]
[X I]=sort(x)
Y=y(I)
0 Commenti
Più risposte (1)
  Ben11
      
 il 15 Lug 2014
        You're almost there!
Try this:
[a b] = sort(x)
y = y(b)
y =
      0.2000    0.5000    0.6000    0.3000    0.4000
0 Commenti
Vedere anche
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!


