Как я могу отсортировать двумерный массив в MATLAB по одному столбцу?

StackOverflow https://stackoverflow.com/questions/134712

  •  02-07-2019
  •  | 
  •  

Вопрос

Я хотел бы отсортировать матрицу по определенному столбцу.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(), который может быть применен к более широким сценариям.

  1. сохраните индексы сортировки строки/столбца, по которым вы хотите упорядочить:

    [~,idx]=sort(data(:,1));
    
  2. переупорядочить все строки/столбцы в соответствии с предыдущими отсортированными индексами

    data=data(idx,:)
    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top