2013-10-30 13 views
7

Ho tre array separati in MATLAB/OTTAVE e sono tutti associati tra loro.Ordinamento di più array in base a un altro ordinamento per array

Sto cercando di ordinare i valori dell'array di aeb in base al tipo di c (così quando c è ordinato, gli array di a e b sono ordinati nello stesso ordine dell'array c).

Example: 
Original Array 
a= [1.2 2 3 4 5 6] 
b= [3  5 6 4.1 7 9] 
c= [2.2 1 9 6 8 3] 

matrici A e B sono basate sul tipo di c (preavviso tutte le matrici vengono ordinati in base all'ordine Array c è ordinato in)

Final Array that I want: 
a= [2 1.2 6 4 5 3] 
b= [5 3  9 4.1 7 6] 
c= [1 2.2 3 6 8 9] 

Aloha Rick

PS: sto usando matlab/ottava se c'è un modo migliore per farlo per favore fammi sapere

+2

possibile duplicato di [MATLAB: ordina una matrice basata su come viene ordinato un vettore] (http://stackoverflow.com/questions/13998098/matlab-sort-a-matrix-based-off-how-a-vector -is-ordinati) ... e questa risposta è anche un duplicato. Questa domanda è già apparsa un po 'di tempo, basta cercare "vector" invece di "array" – thewaywewalk

+0

risposta breve: ottenere gli indici di ordinamento da 'sort' e [applicarli agli altri array] (http://stackoverflow.com/ a/2679517/2778484) OPPURE metti i vettori come colonne di una matrice e [usa 'sortrows'] (http://stackoverflow.com/a/135115/2778484) – chappjc

risposta

10
[sorted, indices] = sort(c) 
% get your output with 
a(indices) 
b(indices) 
Problemi correlati