PDA

查看完整版本 : 跨多列对MATLAB单元阵列进行排序


poster
2019-12-14, 20: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列从最大到最小进行排序,但将所有其他行与要排序的行相关联-该行也存储在单元格数组中。

任何帮助,将不胜感激。



回答:

尽管您正在处理单元格数组 (http://www.mathworks.com/help/matlab/cell-arrays.html) ,但实际上答案与在上面的评论中链接到的密切相关问题中的数字数组 (http://www.mathworks.com/help/matlab/matlab_prog/create-numeric-arrays.html)列出的答案相同:只需使用函数SORTROWS即可 (http://www.mathworks.com/help/techdoc/ref/sortrows.html) 。这是根据第二列中的值(以降序排列)对单元格数组的行进行排序的方法:

sortedCellArray = sortrows(cellArray,-2);
注意:应该注意的是, SORTROWS (http://www.mathworks.com/help/techdoc/ref/sortrows.html)的文档似乎并未明确说明该函数将与单元格数组输入一起使用,但是确实有一个示例说明了该函数对它们的工作原理,就像对其他数组一样。



更多&回答... (https://stackoverflow.com/questions/4651751)