Come posso ordinare un array 2-D in MATLAB rispetto a una colonna?
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?
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.
-
salva gli indici di ordinamento della riga / colonna che desideri ordinare per:
[~,idx]=sort(data(:,1));
-
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