MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   跨多列对MATLAB单元阵列进行排序 (https://www.labfans.com/bbs/showthread.php?t=26654)

poster 2019-12-14 20:38

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

任何帮助,将不胜感激。



[B]回答:[/B]

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

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



[url=https://stackoverflow.com/questions/4651751]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 23:08

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.