
Come estrarre gli elementi di un array in Matlab
In questa lezione ti spiego come estrarre gli elementi da un array di Matlab usando la tecnica dello slicing.
Crea un array con alcuni valori numerici.
>> v=[10 11 12 13 14 15 16]
v =
10 11 12 13 14 15 16
L'array è composto da sette elementi. In questo caso sono sette numeri interi.
Se vuoi estrarre i primi tre elementi dell'array digita b=v(1:3)
>> b=v(1:3)
b =
10 11 12
Il comando estrae gli elementi dalla posizione 1 (primo elemento) alla posizione 3 (terzo elemento) dell'array v.
Il primo elemento di un array su Matlab ha sempre l'indice uguale a uno.
Poi salva i valori appena estratti nell'array b.
Nota. Il simbolo dei due punti (:) separa le due posizioni estreme dell'intervallo. Questa tecnica è detta slicing. Ti permette di estrarre e modificare l'array in modo semplice e veloce. E' usata anche da altri linguaggi di programmazione. Ad esempio, il linguaggio python.
Se invece vuoi estrarre il terzo, quarto e quinto elemento dell'array v digita b=v(3:5)
>> b=v(3:5)
b =
12 13 14
Se vuoi estrarre il primo, il terzo e il quinto valore dell'array v digita b=v([1 3 5])
>> b=v([1 3 5])
b =
10 12 14
Puoi anche estrarre dall'array due intervalli di elementi separandoli tra loro con uno spazio o una virgola.
Ad esempio, estrai il primo e il secondo elemento insieme al sesto e al settimo elemento digitando b=v([1:2 6:7])
>> b=v([1:2 6:7])
b =
10 11 15 16
Per estrarre l'ultimo elemento dell'array puoi indicare la posizione dell'elemento oppure la parola chiave "end".
Ad esempio, per estrarre l'ultimo elemento dell'array v digita b=v(end)
>> b=v(end)
b = 16
La parola chiave end è molto utile perché ti permette di estrarre l'ultimo o gli ultimi elementi dell'array anche se non conosci la lunghezza dell'array ossia il numero dei suoi elementi.
Ad esempio, se vuoi estrarre gli elementi dell'array dal quarto in poi, digita b=v(4:end)
>> b=v(4:end)
b =
13 14 15 16
Se invece vuoi estrarre gli ultimi tre elementi dall'array digita b=v(end-2:end)
>> b=v(end-2:end)
b =
14 15 16
Puoi anche estrarre gli elementi fissando un passo inserendo un ulteriore parametro intermedio nello slicing.
Cos'è il passo? Il passo è un numero intero che indica l'incremento da una posizione dell'array alla posizione successiva durante l'estrazione.
Ad esempio, per estrarre gli elementi in posizione dispari digita b=v(1:2:end)
In questo caso Matlab estrae gli elementi dal primo all'ultimo usando un passo pari a 2.
>> b=v(1:2:end)
b =
10 12 14 16
Il passo può essere anche un numero intero negativo.
Ad esempio, per estrarre gli elementi dell'array dall'ultimo al primo seguendo un ordine inverso digita b=v(end:-1:1)
>> b=v(end:-1:1)
b =
16 15 14 13 12 11 10
Lo slicing ti permette anche di sostituire alcuni elementi dell'array assegnandogli altri valori.
Ad esempio, per sostituire il primo e il secondo valore dell'array con 20 e 21 digita v([1 2]) = [20 21]
>> v([1 2]) = [20 21]
v =
20 21 12 13 14 15 16
Puoi anche assegnare un unico valore a più elementi dell'array.
Ad esempio, assegna il valore 99 al primo e al secondo elemento dell'array digitando v([1 2]) = 99
>> v([1 2]) = 99
v =
99 99 12 13 14 15 16

