2011-01-10 11 views
8

私は、次の形式でデータを持っている:ソートMATLABセルアレイ

'of' 45001 23366 21859591 52876216 0 45001 
'on' 40649 23226 17940625 44201973 0 40649 
'my' 37976 18338 11277975 47042676 0 37976 
'me' 28707 18134 6546887 36222235 0 28707 

私はMATLABで、私は列2の最大から最小に言うが、他のすべての行を保つソートについて行くか疑問に思ってしソートされているものに関連付けられています。これはセル配列にも格納されています。

ご協力いただければ幸いです。

+1

関連する/近い複製:[1列に関してMATLABで2次元配列をソートするにはどうすればよいですか?](http://stackoverflow.com/questions/134712/how-can-i-sort-a- 2-d-array-in-matlab-to-one-column)、[MATLABでどのようにネストされたソートを行うのですか?](http://stackoverflow.com/questions/1262803/how-would- i-do-a-nested-sort-in-matlab)、[MATLABで行列をソートするときに、どのように行を維持するのですか?](http://stackoverflow.com/questions/2923118/how-do-i-maintain- matlabでの行列の並び替え) – gnovice

答えて

14

あなたはcell arrayを扱っていますが、上記のコメントにリンクされている密接に関連する質問の回答は実際にはnumeric arraysのリストと同じになります。単純に関数SORTROWSを使用してください。

sortedCellArray = sortrows(cellArray,-2); 


注:ここでは、(降順で)2番目の列の値に応じて、あなたのセルアレイの行をソートすることができます方法ですSORTROWSのドキュメントにはないことに留意すべきですと明示的にと表示されます。この関数はセル配列の入力に対して機能しますが、他の配列と同じように機能することを示す例があります。

+1

Duh。私はソロローへの援助をチェックし、セル配列を受け入れていないように見えました。 – Jonas

+0

@Jonas:これは私に、これを* exact * duplicateと呼ぶことを止めさせた。他の質問のどれも明示的にセルアレイを扱っていませんし、ドキュメンテーション*もそれについて何も言わないようです! – gnovice

+0

それで私も新しい答えを出しました。それにもかかわらず、私はあなたに同意します。しかし、良い答えのために+1。 – Jonas

関連する問題