Сортировать матричный массив MATLAB по нескольким столбцам - PullRequest
8 голосов
/ 11 января 2011

У меня есть данные, которые имеют следующую форму:

'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 Ответ

14 голосов
/ 11 января 2011

Несмотря на то, что вы имеете дело с массивом ячеек , ответ фактически совпадает с тем, который указан для числовых массивов в тесно связанных вопросах, с которыми я связан в моемКомментарий выше: просто используйте функцию SORTROWS .Вот как вы можете сортировать строки массива ячеек по значениям во втором столбце (в порядке убывания):

sortedCellArray = sortrows(cellArray,-2);


ПРИМЕЧАНИЕ: Следует отметить, чтодокументация для SORTROWS явно не указывает на , в которой говорится, что функция будет работать со входами массива ячеек, но есть пример, показывающий, что она работает для них так же, как и длялюбой другой массив.

...