Indicizzazione di array
Ogni variabile di MATLAB® è un array che può contenere molti numeri. Per accedere a elementi selezionati di un array, utilizzare l'indicizzazione.
Ad esempio, si consideri la matrice 4x4 A
:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Vi sono due modi per fare riferimento a un particolare elemento di un array. Il metodo più diffuso consiste nello specificare pedici di righe e colonne, come
A(4,2)
ans = 14
Meno diffuso, ma a volte utile, è utilizzare un singolo pedice che percorre verso il basso tutte le colonne nell'ordine:
A(8)
ans = 14
L'utilizzo di un singolo pedice per fare riferimento a un particolare elemento in un array prende il nome di indicizzazione lineare.
Se si prova a fare riferimento a elementi esterni a un array, sul lato destro di una dichiarazione di assegnazione, MATLAB genera un errore.
test = A(4,5)
Index in position 2 exceeds array bounds (must not exceed 4).
Sul lato sinistro di una dichiarazione di assegnazione, invece, è possibile specificare elementi esterni alle dimensioni correnti. Le dimensioni vengono aumentate per adattarle alla nuova immissione.
A(4,5) = 17
A = 4×5
1 2 3 4 0
5 6 7 8 0
9 10 11 12 0
13 14 15 16 17
Per fare riferimento a più elementi di un array utilizzare l'operatore virgola, che consente di specificare un range di forma start:end
. Ad esempio, elencare gli elementi nelle prime tre righe e nella seconda colonna di A
:
A(1:3,2)
ans = 3×1
2
6
10
La sola virgola, senza valori iniziali e finali, specifica tutti gli elementi in quella determinata dimensione. Ad esempio, selezionare tutte le colonne nella terza riga di A
:
A(3,:)
ans = 1×5
9 10 11 12 0
L'operatore virgola consente anche di creare un vettore di valori di spaziatura uniforme utilizzando la forma più generale start:step:end
.
B = 0:10:100
B = 1×11
0 10 20 30 40 50 60 70 80 90 100
Se si omette il passaggio intermedio, come in start:end
, MATLAB utilizza il valore incrementale predefinito 1
.