Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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.

Si consideri ad esempio il quadrato magico 4x4 A:

A = magic(4)
A = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

Vi sono due modi per fare riferimento a un particolare elemento di un array. Il metodo più comune consiste nello specificare pedici di righe e colonne, come

A(4,2)
ans = 14

Meno comune, 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 exceeds matrix dimensions.

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

    16     2     3    13     0
     5    11    10     8     0
     9     7     6    12     0
     4    14    15     1    17

Per fare riferimento a più elementi di un array utilizzare l'operatore virgola, che permette 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
    11
     7

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     7     6    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.