sortrows

Ordena as linhas de uma matriz ou tabela por uma ou mais colunas.

Categoria: Language Fundamentals > Matrices and Arrays

Sintaxe

B = sortrows(A)

Ordena as linhas em ordem crescente, usando a primeira coluna como chave principal e as seguintes para desempatar.

B = sortrows(A, col)

Ordena pelas colunas listadas em col. Um número negativo ordena essa coluna em ordem decrescente.

B = sortrows(A, col, direction)

Aplica 'ascend' ou 'descend' às colunas escolhidas.

[B, I] = sortrows(___)

Retorna também a permutação das linhas.

Descrição

As linhas são comparadas em ordem lexicográfica: a primeira coluna-chave decide, e as seguintes só são consultadas quando as anteriores empatam. A ordenação é estável, então linhas que empatam em todas as chaves mantêm a ordem original.

A segunda saída permite aplicar a mesma reordenação a outros arrays, por exemplo names(I).

Argumentos de entrada

A
Matriz numérica, tabela, cell array de vetores de caracteres ou array de strings.
col
Vetor de índices de colunas. O sinal indica a direção de cada coluna.
direction
'ascend' (padrão) ou 'descend'.

Argumentos de saída

B
A com as linhas reordenadas. Cada linha permanece inteira.
I
Vetor de índices tal que B = A(I,:).

Exemplo

Ordenando por uma ou duas chaves

A = [3 1; 1 2; 1 1; 2 9];
sortrows(A)
[B, I] = sortrows(A, [1 -2]);
B
I'
Saída
ans = 4×2

     1     1
     1     2
     2     9
     3     1
B = 4×2

     1     2
     1     1
     2     9
     3     1
ans = 1×4

     2     3     4     1

Veja também

sort issorted unique table