【问题标题】:Sort MATLAB Cell Array Across multiple columns跨多列对 MATLAB 元胞数组进行排序
【发布时间】:2011-06-06 19:25:38
【问题描述】:

我有以下形式的数据:

'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 列从最大到最小进行排序,但保留所有其他行与正在排序的行相关联 - 这也存储在一个单元格数组中。

任何帮助将不胜感激。

【问题讨论】:

标签: arrays matlab sorting cell


【解决方案1】:

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

sortedCellArray = sortrows(cellArray,-2);


注意: 应该注意的是,SORTROWS 的文档似乎没有明确说该函数适用于元胞数组输入,但它确实有一个示例表明它适用于它们,就像它适用于任何其他数组一样。

【讨论】:

  • 呃。我检查了 sortrows 的帮助,它看起来好像不接受单元格数组。
  • @Jonas:这就是让我暂停将其称为 exact 副本的原因。其他问题都没有明确涉及元胞数组,甚至文档似乎也没有说明任何内容!
  • 这也是我提出新答案的原因。我同意你的观点,尽管如此,它确实是一个非常接近的副本。不过,+1 以获得更好的答案。
  • Docs 现在明确接受元胞数组:“输入数组,指定为列向量或矩阵。A 的数据类型可以是数字、逻辑、字符、单元格、分类、日期时间或持续时间”
猜你喜欢
  • 1970-01-01
  • 2020-11-22
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多