Una matriz bidimensional es un tipo muy común de estructura de datos y se usa de una forma u otra en casi todos los lenguajes de programación de computadoras. En una matriz de este tipo, los elementos de datos del mismo tipo se organizan en un formato que normalmente se representa como una tabla con filas y columnas. Las técnicas específicas que se utilizan para localizar elementos de datos en la memoria varían de un idioma a otro y de un caso a otro, pero las variedades más eficientes permiten utilizar cálculos matemáticos simples para localizar la dirección de memoria específica de cualquier elemento de matriz dado. Las matrices son tan comunes que muchos lenguajes incluyen la matriz como un tipo de datos básico.
Las matrices son algunas de las estructuras de datos más comunes utilizadas por los programadores de computadoras. Una matriz se define como una serie de elementos de datos que pueden identificarse de forma única mediante algunos índices. Es una práctica común referirse a una matriz como que tiene un número de dimensiones igual al número de elementos de índice necesarios para ubicar un elemento de datos en particular. En una matriz unidimensional, que es esencialmente una lista, cada elemento de datos se puede ubicar haciendo referencia a su posición en la lista. Una matriz bidimensional utiliza dos índices para identificar cada elemento de datos y se puede visualizar como una tabla con filas y columnas.
Cada elemento de datos en una matriz bidimensional estándar consta del mismo tipo de objeto. Los elementos de matriz suelen ser variables simples, como números flotantes o enteros. Sin embargo, en principio, cualquier tipo de información puede almacenarse en una matriz, siempre que cada elemento sea el mismo. Una matriz bidimensional es una opción natural para almacenar cualquier dato que se colocaría naturalmente en una tabla, y este tipo de datos se usa con mucha frecuencia para hacer precisamente eso.
Idealmente, una matriz bidimensional completa se puede ubicar dentro de un solo bloque continuo de memoria. Esto permite un acceso muy rápido, ya que la dirección de memoria específica de cada elemento de datos individual dentro de una matriz bidimensional se puede calcular matemáticamente, utilizando una fórmula basada en el tamaño necesario para cada elemento de datos. En la práctica, esto no siempre es posible y las matrices pueden almacenarse en diferentes partes de la memoria, un proceso que reduce la velocidad con la que se puede acceder a los elementos.
La variedad más básica de matriz bidimensional tiene un tamaño fijo y utiliza valores enteros para los índices. Muchos lenguajes solo permiten el uso de números enteros para los valores de índice, aunque a menudo es posible crear tipos de datos personalizados para evitar esta limitación si es necesario. Otras variedades de matrices bidimensionales están optimizadas para fines específicos, como almacenar matrices de celdas en gran parte vacías o permitir el cambio de tamaño dinámico.