2013-10-30 111 views
7

我有三個獨立的數組,它們都是相互關聯的。我想基於c的排序來排序a和b的數組值(因此當c被排序時,a和b數組按照與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] 

陣列a和b是基於排序Ç 的(注意所有的陣列基於順序數組c排序中進行排序)

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] 

阿羅哈 瑞克

PS:我正在使用matlab /八度如果有更好的方法來做到這一點,請讓我知道

+2

可能重複的[MATLAB - 排序矩陣基於如何向量排序](http://stackoverflow.com/questions/13998098/matlab-sort-a-matrix-based-off-how-a-vector -is-sorted)...並且這個答案也是重複的。這些問題已經出現了一堆時間,只是搜索「矢量」,而不是「數組」 – thewaywewalk

+0

簡短的回答:從'sort'和[把它們應用到其他數組]的排序索引(http://stackoverflow.com/ a/2679517/2778484)或者將這些向量作爲矩陣的列並[使用'sortrows'](http://stackoverflow.com/a/135115/2778484) – chappjc

回答

10
[sorted, indices] = sort(c) 
% get your output with 
a(indices) 
b(indices) 
相關問題