sort
Ordinare gli elementi dell'array
Descrizione
ordina gli elementi di B
= sort(A
)A
in ordine crescente.
Se
A
è un vettore,sort(A)
ordina gli elementi del vettore.Se
A
è una matrice,sort(A)
tratta le colonne diA
come vettori e ordina ciascuna colonna.Se
A
è un array multidimensionale,sort(A)
opera lungo la prima dimensione dell’array la cui grandezza non è uguale a 1, trattando gli elementi come vettori.
specifica ulteriori parametri per l'ordinamento. Ad esempio, B
= sort(___,Name,Value
)sort(A,'ComparisonMethod','abs')
ordina gli elementi di A
per magnitudine.
Esempi
Ordinamento del vettore in ordine crescente
Creare un vettore riga e ordinare i relativi elementi in ordine crescente.
A = [9 0 -7 5 3 8 -10 4 2]; B = sort(A)
B = 1×9
-10 -7 0 2 3 4 5 8 9
Ordinamento delle righe della matrice in ordine crescente
Creare una matrice e ordinare ciascuna riga in ordine crescente.
A = [3 6 5; 7 -2 4; 1 0 -9]
A = 3×3
3 6 5
7 -2 4
1 0 -9
B = sort(A,2)
B = 3×3
3 5 6
-2 4 7
-9 0 1
Ordinamento delle colonne della matrice in ordine decrescente
Creare una matrice e ordinare ciascuna colonna in ordine decrescente.
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
A = 4×4
10 -12 4 8
6 -9 8 0
2 3 11 -2
1 1 9 3
B = sort(A,'descend')
B = 4×4
10 3 11 8
6 1 9 3
2 -9 8 0
1 -12 4 -2
Ordinamento di array di stringhe
A partire dalla release R2017a, è possibile creare array di stringhe utilizzando i doppi apici e ordinarli utilizzando la funzione sort
. Ordinare le stringhe in ciascuna colonna di un array di stringhe secondo l'ordine del dizionario Unicode®.
A = ["Santos","Burns"; ... "Jones","Morita"; ... "Petrov","Adams"]; B = sort(A)
B = 3x2 string
"Jones" "Adams"
"Petrov" "Burns"
"Santos" "Morita"
Ordinare le stringhe in ciascuna riga.
B = sort(A,2)
B = 3x2 string
"Burns" "Santos"
"Jones" "Morita"
"Adams" "Petrov"
Ordinamento e indicizzazione dell'array datetime
Creare un array di valori datetime
e ordinarli in ordine crescente, ossia dalla più recente alla meno recente data di calendario.
ds = {'2012-12-22';'2063-04-05';'1992-01-12'}; A = datetime(ds,'Format','yyyy-MM-dd')
A = 3x1 datetime
2012-12-22
2063-04-05
1992-01-12
[B,I] = sort(A)
B = 3x1 datetime
1992-01-12
2012-12-22
2063-04-05
I = 3×1
3
1
2
B
elenca le date ordinate e I
contiene gli indici corrispondenti di A
.
Accedere agli elementi ordinati dell'array originale direttamente utilizzando l'array di indici I
.
A(I)
ans = 3x1 datetime
1992-01-12
2012-12-22
2063-04-05
Ordinamento di vettori nello stesso ordine
Creare due vettori riga che contengano i dati correlati negli elementi corrispondenti.
X = [3 6 4 2 1 5]; Y = ["yellow" "purple" "green" "orange" "red" "blue"];
Ordinare prima il vettore X
, quindi ordinare il vettore Y
nello stesso ordine di X
.
[Xsorted,I] = sort(X)
Xsorted = 1×6
1 2 3 4 5 6
I = 1×6
5 4 1 3 6 2
Ysorted = Y(I)
Ysorted = 1x6 string
"red" "orange" "yellow" "green" "blue" "purple"
Ordinamento di un array tridimensionale
Creare un array 2x2x2 e ordinare gli elementi in ordine crescente lungo la terza dimensione.
A(:,:,1) = [2 3; 1 6]; A(:,:,2) = [-1 9; 0 12]; A
A = A(:,:,1) = 2 3 1 6 A(:,:,2) = -1 9 0 12
B = sort(A,3)
B = B(:,:,1) = -1 3 0 6 B(:,:,2) = 2 9 1 12
Utilizzare A(:)
, la rappresentazione in colonna di A
, per ordinare tutti gli elementi di A
.
B = sort(A(:))
B = 8×1
-1
0
1
2
3
6
9
12
Vettore complesso
Ordinare gli elementi di un vettore complesso in base alle loro parti reali. Per impostazione predefinita, la funzione sort
ordina i valori complessi in base alla loro magnitudine e interrompe le parità utilizzando gli angoli di fase. Specificare il valore di 'ComparisonMethod'
come 'real'
per ordinare invece i valori complessi in base alle loro parti reali. Per gli elementi con parti reali uguali, sort
interrompe le parità in base alle loro parti immaginarie.
A = [1+2i 3+1i 1i 0 -1i]; B = sort(A,'ComparisonMethod','real')
B = 1×5 complex
0.0000 - 1.0000i 0.0000 + 0.0000i 0.0000 + 1.0000i 1.0000 + 2.0000i 3.0000 + 1.0000i
Argomenti di input
A
— Array di input
vettore | matrice | array multidimensionale
Array di input, specificato come vettore, matrice o array multidimensionale.
Se
A
è uno scalare,sort(A)
restituisceA
.Se
A
è complesso, per impostazione predefinita,sort
ordina gli elementi per magnitudine. Se più elementi hanno la stessa magnitudine, gli elementi vengono ordinati in base all'angolo di fase sull'intervallo (-π, π).Se
A
è un array di celle di vettori di caratteri o un array di stringa,sort(A)
ordina gli elementi secondo l'ordine di codifica dello schema di codifica dei caratteri UTF-16. L'ordinamento differenzia le maiuscole dalle minuscole. Per maggiori informazioni sull'ordinamento degli array di caratteri e di stringhe, vedere Ordine di ordinamento per array di caratteri e array di stringhe.Se
A
è un array di stringhe,sort
riordina gli elementi dell'array, ma non i caratteri all'interno delle stringhe.Se
A
è un array categorico, l'ordine dell'ordinamento si basa sull'ordine di categoria restituito dacategories(A)
.
Tipi di dati: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| categorical
| datetime
| duration
Supporto numeri complessi: Sì
dim
— Dimensione lungo la quale operare
scalare intero positivo
Dimensione lungo la quale operare, specificata come scalare intero positivo. Se non viene specificato alcun valore, l'impostazione predefinita è la prima dimensione dell'array la cui dimensione non è uguale a 1.
Considerare una matrice
A
.sort(A,1)
ordina gli elementi nelle colonne diA
.sort(A,2)
ordina gli elementi nelle righe diA
.
sort
restituisce A
se dim
è maggiore di ndims(A)
. dim
non è supportato quando A
è un array di celle, ossia sort
opera solo lungo la prima dimensione dell'array la cui dimensione non è uguale a 1.
Tipi di dati: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
direction
— Direzione di ordinamento
'ascend'
(predefinito) | 'descend'
Direzione di ordinamento, specificata come 'ascend'
o 'descend'
. direction
non è supportato quando A
è un array di celle, ossia sort
ordina solo in ordine crescente.
Argomenti nome-valore
Specificare coppie opzionali di argomenti come Name1=Value1,...,NameN=ValueN
, dove Name
è il nome dell’argomento e Value
è il valore corrispondente. Gli argomenti nome-valore devono comparire dopo gli altri argomenti, mentre l'ordine delle coppie non è rilevante.
Per le release antecedenti alla R2021a, utilizzare le virgole per separare ciascun nome e valore e includere Name
tra virgolette.
Esempio sort(A,'MissingPlacement','last')
MissingPlacement
— Collocazione dei valori mancanti
'auto'
(predefinito) | 'first'
| 'last'
Collocazione dei valori mancanti (NaN
, NaT
, <undefined>
e missing
) specificata come coppia separata da virgole, composta da 'MissingPlacement'
e uno dei seguenti elementi:
'auto'
: gli elementi mancanti vengono posizionati per ultimi nell'ordine crescente e per primi per nell'ordine decrescente.'first'
: gli elementi mancanti vengono posizionati per primi.'last'
: gli elementi mancanti vengono posizionati per ultimi.
ComparisonMethod
— Metodo di confronto degli elementi
'auto'
(predefinito) | 'real'
| 'abs'
Metodo di confronto degli elementi, specificato come coppia separata da virgole, composta da 'ComparisonMethod'
e uno dei seguenti elementi:
'auto'
: ordinaA
perreal(A)
quandoA
è reale e perabs(A)
quandoA
è complesso.'real'
: ordinaA
perreal(A)
quandoA
è reale o complesso. SeA
presenta elementi con parti reali uguali, utilizzareimag(A)
per interrompere le parità.'abs'
: ordinaA
perabs(A)
quandoA
è reale o complesso. SeA
presenta elementi con magnitudine uguale, utilizzareangle(A)
nell'intervallo (-π,π] per interrompere le parità.
Argomenti di output
B
— Array ordinato
vettore | matrice | array multidimensionale
Array ordinato, restituito come vettore, matrice array multidimensionale. B
ha la stessa grandezza ed è dello stesso tipo di A
.
Tipi di dati: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| categorical
| datetime
| duration
I
— Indice di ordinamento
vettore | matrice | array multidimensionale
Indice di ordinamento, restituito come vettore, matrice o array multidimensionale. I
ha la stessa grandezza di A
. I vettori di indice sono orientati lungo la stessa dimensione su cui opera sort
. Ad esempio, se A
è una matrice 2x3, [B,I] = sort(A,2)
ordina gli elementi in ciascuna riga di A
. L'output I
è una raccolta di vettori di indici di riga 1x3 che descrivono la riorganizzazione di ciascuna riga di A
.
La funzione sort
utilizza un algoritmo di ordinamento stabile. Quindi, quando l'input contiene valori ripetuti, l'indice di ordinamento conserva l'ordine originale dell'input, indipendentemente dalla direzione dell'ordinamento. Ad esempio, se A = [1 2 1 2]
, [Ba,Ia] = sort(A,'ascend')
restituisce l'indice di ordinamento Ia = [1 3 2 4]
e [Bd,Id] = sort(A,'descend')
restituisce l'indice di ordinamento Id = [2 4 1 3]
.
Ulteriori informazioni
Ordine di ordinamento per array di caratteri e array di stringhe
MATLAB® memorizza i caratteri come Unicode® utilizzando lo schema di codifica dei caratteri UTF-16. Gli array di caratteri e gli array di stringhe vengono ordinati in base all'ordine a punti del codice UTF-16. Per i caratteri che sono anche caratteri ASCII, questo ordine significa che le lettere maiuscole vengono prima delle lettere minuscole. Anche le cifre e alcuni segni di punteggiatura precedono le lettere.
Suggerimenti
La funzione
sortrows
fornisce un'ulteriore flessibilità per il sotto-ordinamento su più colonne di input di matrici o tabelle.La funzione
sort
e gli operatori relazionali utilizzano ordinamenti diversi per i numeri complessi. Per maggiori informazioni, vedere Operazioni relazionali.
Funzionalità estese
Tall array
Esegui calcoli con array che hanno più righe di quelle allocabili in memoria.
Questa funzione supporta i tall array con le seguenti limitazioni:
È necessario specificare la dimensione da ordinare, come in
sort(X,dim)
.L'ordinamento della dimensione alta, come in
sort(X,1)
, è supportato solo per i vettori colonna.
Per maggiori informazioni, vedere Tall Array.
Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.
Note su utilizzo e limitazioni:
Se
A
è complesso con tutte le parti immaginarie pari a zero, MATLAB potrebbe convertire aA
inreal(A)
prima di chiamaresort(A)
. In questo caso, MATLAB ordinaA
perreal(A)
, ma il codice generato ordinaA
perabs(A)
. Per fare in modo che il codice generato coincida con MATLAB, utilizzaresort(real(A))
osort(A,'ComparisonMethod','real')
. Vedere Code Generation for Complex Data with Zero-Valued Imaginary Parts (MATLAB Coder).Se si fornisce
dim
, deve essere una costante.Il supporto per le dimensioni variabili deve essere abilitato quando l'array di celle di input è eterogeneo.
Per le limitazioni relative agli input di dimensioni variabili, vedere Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Ambiente basato su thread
Esegui il codice in background usando MATLAB® backgroundPool
oppure accelera il codice con Parallel Computing Toolbox™ ThreadPool
.
Questa funzione supporta completamente gli ambienti basati su thread. Per maggiori informazioni, vedere Run MATLAB Functions in Thread-Based Environment.
Array GPU
Accelera il codice mediante esecuzione su un’unità di elaborazione grafica (GPU) con Parallel Computing Toolbox™.
Questa funzione supporta completamente gli array di GPU. Per maggiori informazioni, vedere Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Array distribuiti
Partiziona array di grandi dimensioni nella memoria combinata del cluster con Parallel Computing Toolbox™.
Note su utilizzo e limitazioni:
Gli input tabella, data e ora e durata non sono supportati.
Per maggiori informazioni, vedere Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Cronologia versioni
Introduzione prima di R2006a
Comando MATLAB
Hai fatto clic su un collegamento che corrisponde a questo comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB. I browser web non supportano i comandi MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)