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

Я хотел бы отсортировать матрицу в соответствии с конкретным столбцом. Существует функция 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,:) 
  • Какой алгоритм параллельной сортировки имеет лучшую среднюю производительность?
  • Как объяснить сортировку (численное, лексикографическое и сопоставление) с примерами для нетехнических тестеров?
  • Как отсортировать вектор символа, где элементы содержат буквы и числа в R?
  • Сортировка списка Java: есть ли способ сохранить список, который автоматически сортируется автоматически, например TreeMap?
  • Как сортировать аррайалист объектов по свойству?
  • Как отсортировать массив объектов в Java?
  • Могу ли я сортировать NSDictionary на основе ключа в Objective-C?
  • Как отсортировать список по алфавиту?
  • Многопоточная сортировка или слияние
  • c ++ сортировка, отслеживающая индексы
  • Лучший способ рандомизировать массив с .NET.
  • Давайте будем гением компьютера.