Dimensiones de matrices en Visual Basic
Una dimensión es una dirección en la que puede variar la especificación de los elementos de una matriz. Una matriz que contiene el total de ventas para cada día del mes tiene una dimensión (el día del mes). Una matriz que contiene el total de ventas por departamento para cada día del mes tiene dos dimensiones (el número de departamento y el día del mes). El número de dimensiones de una matriz se conoce como rango.
Nota
Puede usar la propiedad Rank para determinar cuántas dimensiones tiene una matriz.
Trabajar con dimensiones
Para especificar un elemento de una matriz, proporciona un índice o subíndice para cada una de sus dimensiones. Los elementos son contiguos a lo largo de cada dimensión del índice 0 al índice más alto de esa dimensión.
En las ilustraciones siguientes se muestra la estructura conceptual de matrices con diferentes rangos. Cada elemento de las ilustraciones muestra los valores de índice que tienen acceso a él. Por ejemplo, puedes acceder al primer elemento de la segunda fila de la matriz bidimensional especificando índices (1, 0)
.
Una dimensión
Muchas matrices solo tienen una dimensión, como el número de personas de cada edad. El único requisito para especificar un elemento es la antigüedad para la que ese elemento contiene el recuento. Por lo tanto, esta matriz usa solo un índice. En el ejemplo siguiente se declara una variable que contiene una matriz unidimensional de recuentos de edades de entre 0 y 120 años.
Dim ageCounts(120) As UInteger
Dos dimensiones
Algunas matrices tienen dos dimensiones, como el número de oficinas en cada planta de cada edificio de un campus. La especificación de un elemento requiere tanto el número de edificio como el piso, y cada elemento contiene el recuento para esa combinación de edificio y piso. Por lo tanto, esta matriz usa dos índices. En el ejemplo siguiente se declara una variable para contener una matriz bidimensional de recuentos de oficinas, para edificios de 0 a 40 y pisos de 0 a 5.
Dim officeCounts(40, 5) As Byte
Una matriz bidimensional también se denomina matriz rectangular.
Tres dimensiones
Algunas matrices tienen tres dimensiones, como los valores en el espacio tridimensional. Esta matriz usa tres índices, que en este caso representan las coordenadas x, y y z del espacio físico. En el ejemplo siguiente se declara una variable para contener una matriz tridimensional de temperaturas del aire en varios puntos de un volumen tridimensional.
Dim airTemperatures(99, 99, 24) As Single
Más de tres dimensiones
Aunque una matriz puede tener hasta 32 dimensiones, es raro tener más de tres.
Nota
Cuando se agregan dimensiones a una matriz, el almacenamiento total necesario para la matriz aumenta considerablemente, por lo que se usan matrices multidimensionales con cuidado.
Uso de dimensiones diferentes
Supongamos que desea realizar un seguimiento de los importes de ventas de cada día del mes actual. Puedes declarar una matriz unidimensional con 31 elementos, uno para cada día del mes, como se muestra en el ejemplo siguiente.
Dim salesAmounts(30) As Double
Ahora supongamos que deseas realizar un seguimiento de la misma información no solo para cada día de un mes, sino también para cada mes del año. Puede declarar una matriz bidimensional con 12 filas (durante los meses) y 31 columnas (durante los días), como se muestra en el ejemplo siguiente.
Dim salesAmounts(11, 30) As Double
Ahora supongamos que decides tener la información de retención de la matriz durante más de un año. Si deseas realizar un seguimiento de los importes de ventas durante 5 años, podrías declarar una matriz tridimensional con 5 capas, 12 filas y 31 columnas, como se muestra en el ejemplo siguiente.
Dim salesAmounts(4, 11, 30) As Double
Ten en cuenta que, dado que cada índice varía de 0 a su máximo, cada dimensión de salesAmounts
se declara como una menor que la longitud necesaria para esa dimensión. Ten en cuenta también que el tamaño de la matriz aumenta con cada nueva dimensión. Los tres tamaños de los ejemplos anteriores son 31, 372 y 1860 elementos respectivamente.
Nota
Puedes crear una matriz sin usar la instrucción Dim
o la cláusula New
. Por ejemplo, puedes llamar al método CreateInstance y otro componente puede pasar el código de una matriz creada de esta manera. Esta matriz puede tener un límite inferior distinto de 0. Siempre puede probar el límite inferior de una dimensión mediante el método GetLowerBound o la función LBound
.