Как я могу отсортировать двумерный массив в MATLAB по одному столбцу?
Вопрос
Я хотел бы отсортировать матрицу по определенному столбцу.Eсть sort
функция, но она сортирует все столбцы независимо.
Например, если моя матрица data
является:
1 3
5 7
-1 4
Тогда желаемый результат (сортировка по первому столбцу) будет:
-1 4
1 3
5 7
Но вывод sort(data)
является:
-1 3
1 4
5 7
Как отсортировать эту матрицу по первому столбцу?
Решение
я думаю сортировки функция — это то, что вы ищете.
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
Другие советы
Альтернатива sortrows()
, который может быть применен к более широким сценариям.
сохраните индексы сортировки строки/столбца, по которым вы хотите упорядочить:
[~,idx]=sort(data(:,1));
переупорядочить все строки/столбцы в соответствии с предыдущими отсортированными индексами
data=data(idx,:)
Не связан с StackOverflow