2011-01-10 39 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

相关/近似重复:[我怎么能排序MATLAB中的二维数组关于一列?](http://stackoverflow.com/questions/134712/how-can-i-sorta-a- 2-d-array-in-matlab-with-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 2011-01-10 21:39:21

回答

14

虽然你正在处理一个cell array,答案其实最终是相同的numeric arrays在我挂在我的上述评论的密切相关的问题列出:简单的使用功能SORTROWS。这里是你如何根据在第二列中的值的单元阵列的行(按降序排列)排序:

sortedCellArray = sortrows(cellArray,-2); 


注:应当注意的是,SORTROWS的文档不似乎明确说该函数将与单元格数组输入,但它确实有一个例子显示它适用于他们,就像它对任何其他数组。

+1

Duh。我检查了帮助分拣,它看起来好像不接受单元阵列。 – Jonas 2011-01-10 21:48:06