在多列中对MATLAB单元阵列进行排序

时间:2011-01-10 21:34:36

标签: arrays matlab sorting cell

我的数据格式如下:

'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 个答案:

答案 0 :(得分:14)

虽然您正在处理cell array,但答案实际上与我在上述评论中链接的密切相关问题中列出的numeric arrays相同:只需使用函数SORTROWS。以下是如何根据第二列中的值(按降序排序)对单元格数组的行进行排序:

sortedCellArray = sortrows(cellArray,-2);


注意:应该注意的是SORTROWS的文档似乎显式表示该函数可以使用单元格数组输入,但它确实有一个示例显示它适用于它们就像它对任何其他数组一样。