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