Dimensioni di matrice in Visual Basic
Una dimensione è una direzione in cui è possibile variare la specifica degli elementi di una matrice. Una matrice che contiene il totale delle vendite per ogni giorno del mese ha una dimensione (il giorno del mese). Una matrice che contiene il totale delle vendite per reparto per ogni giorno del mese ha due dimensioni (il numero di reparto e il giorno del mese). Il numero di dimensioni di una matrice è denominato rango.
Nota
È possibile usare la proprietà Rank per determinare il numero di dimensioni di una matrice.
Utilizzo delle dimensioni
Specificare un elemento di una matrice specificando un indice o un indice inferiore per ognuna delle relative dimensioni. Gli elementi sono contigui lungo ogni dimensione dall'indice 0 all'indice più alto per tale dimensione.
Le illustrazioni seguenti mostrano la struttura concettuale di matrici con ranghi diversi. Ogni elemento nelle illustrazioni mostra i valori di indice che vi accedono. Ad esempio, è possibile accedere al primo elemento della seconda riga della matrice bidimensionale specificando gli indici (1, 0)
.
Una dimensione
Molte matrici hanno una sola dimensione, ad esempio il numero di persone di ogni età. L'unico requisito per specificare un elemento è l'età per cui l'elemento contiene il conteggio. Tale matrice usa quindi un solo indice. Nell'esempio seguente viene dichiarata una variabile per contenere una matrice unidimensionale di conteggi di età per età compresa tra 0 e 120.
Dim ageCounts(120) As UInteger
Due dimensioni
Alcune matrici hanno due dimensioni, ad esempio il numero di uffici su ogni piano di ogni edificio in un campus. La specifica di un elemento richiede sia il numero di edificio che il piano e ogni elemento contiene il conteggio per tale combinazione di edificio e piano. Tale matrice usa quindi due indici. Nell'esempio seguente viene dichiarata una variabile per contenere una matrice bidimensionale dei conteggi degli uffici, per gli edifici da 0 a 40 e i piani da 0 a 5.
Dim officeCounts(40, 5) As Byte
Una matrice bidimensionale è detta anche matrice rettangolare.
Tre dimensioni
Alcune matrici hanno tre dimensioni, ad esempio i valori nello spazio tridimensionale. Tale matrice usa tre indici, che in questo caso rappresentano le coordinate x, y e z dello spazio fisico. Nell'esempio seguente viene dichiarata una variabile per contenere una matrice tridimensionale di temperature dell'aria in vari punti in un volume tridimensionale.
Dim airTemperatures(99, 99, 24) As Single
Più di tre dimensioni
Anche se una matrice può avere fino a 32 dimensioni, raramente ne avrà più di tre.
Nota
Quando si aggiungono dimensioni a una matrice, le risorse di archiviazione totali necessarie per la matrice aumentano notevolmente, quindi occorre usare matrici multidimensionali con cautela.
Uso di dimensioni diverse
Si supponga di voler tenere traccia degli importi delle vendite per ogni giorno del mese corrente. È possibile dichiarare una matrice unidimensionale con 31 elementi, uno per ogni giorno del mese, come illustrato nell'esempio seguente.
Dim salesAmounts(30) As Double
Si supponga ora di voler tenere traccia delle stesse informazioni non solo per ogni giorno di un mese, ma anche per ogni mese dell'anno. È possibile dichiarare una matrice bidimensionale con 12 righe (per i mesi) e 31 colonne (per i giorni), come illustrato nell'esempio seguente.
Dim salesAmounts(11, 30) As Double
Si supponga ora di decidere includere nella matrice informazioni per più di un anno. Se si vuole tenere traccia degli importi delle vendite per 5 anni, è possibile dichiarare una matrice tridimensionale con 5 livelli, 12 righe e 31 colonne, come illustrato nell'esempio seguente.
Dim salesAmounts(4, 11, 30) As Double
Si noti che, poiché ogni indice varia da 0 al rispettivo valore massimo, ogni dimensione di salesAmounts
viene dichiarata come un valore in meno rispetto alla lunghezza necessaria per tale dimensione. Si noti anche che le dimensioni della matrice aumentano con ogni nuova dimensione. Le tre dimensioni negli esempi precedenti corrispondono rispettivamente a 31, 372 e 1.860 elementi.
Nota
È possibile creare una matrice senza usare l'istruzione Dim
o la clausola New
. Ad esempio, è possibile chiamare il metodo CreateInstance oppure un altro componente può passare il codice a una matrice creata in questo modo. Tale matrice può avere un limite inferiore diverso da 0. È sempre possibile verificare il limite inferiore di una dimensione usando il metodo GetLowerBound o la funzione LBound
.