Domanda

Vorrei ordinare una matrice in base a una colonna particolare. Esiste una funzione sort , ma ordina tutte le colonne in modo indipendente.

Ad esempio, se la mia matrice data è:

 1     3
 5     7
-1     4

Quindi l'output desiderato (ordinamento per la prima colonna) sarebbe:

-1     4
 1     3
 5     7

Ma l'output di sort (data) è:

-1     3
 1     4
 5     7

Come posso ordinare questa matrice per la prima colonna?

È stato utile?

Soluzione

Penso che la funzione sortrows è ciò che stai cercando .

>> sortrows(data,1)

ans =

    -1     4
     1     3
     5     7

Altri suggerimenti

Un'alternativa a sortrows () , che può essere applicata a scenari più ampi.

  1. salva gli indici di ordinamento della riga / colonna che desideri ordinare per:

    [~,idx]=sort(data(:,1));
    
  2. riordina tutte le righe / colonne in base agli indici ordinati precedenti

    data=data(idx,:)
    
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top