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
BAcom 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