2013-10-30 16 views
7

私は3つの別々の配列をmatlab/octaveにあり、それらはすべて互いに関連しています。別の配列に基づいて複数の配列をソート並べ替え順

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] 

アロハ リック

を(すべてのアレイがでソートされた順序配列cに基づいてソートされ注意)

PS:もっと良い方法があればmatlab/octaveを使っています。

+2

[MATLAB - ベクトルのソート方法に基づいて行列をソートする](http://stackoverflow.com/questions/13998098/matlab-sort-a-matrix-based-off-how-a-vector -is-sorted)...この回答は重複しています。これらの質問は、すでに「配列」の代わりに「ベクトル」を検索するだけの時間がたくさん現れています。 – thewaywewalk

+0

短い答え:並べ替えのインデックスを 'sort'から取得して[他の配列に適用](http://stackoverflow.com/// 2679517/2778484)またはベクトルを行列の列として入れ、[sortrows'を使う](http://stackoverflow.com/a/135115/2778484) – chappjc

答えて

10
[sorted, indices] = sort(c) 
% get your output with 
a(indices) 
b(indices) 
関連する問題