Vector multidimensional

Vector multidimensional

En programación, un vector multidimensional es un vector que se indexa mediante una lista ordenada de enteros. El número de enteros que se utiliza en esta lista para indexar el vector multidimensional es siempre el mismo y se conoce como la dimensionalidad del vector. Por otra parte, los límites de cada uno de los enteros que forman parte del indice, determinan la dimensión del vector. A un vector con dimensionalidad k se le suele llamar k-dimensional. Los vectores 1-dimensional se corresponden con los vectores ordinarios en los que los elementos están dispuestos en una única fila (o columna); los vectores 2-dimensional son otra forma de llamar a las clásicas matrices en las que sus elementos están dispuestos en varias filas y columnas (dos dimensiones). En la práctica, la dimensionalidad de un vector raras veces excede de tres.

Representación en memoria

La forma de disponer los elementos de un vector 1-dimensional en la memoria de un ordenador es trivial, ya que ésta, en sí misma, tiene la forma de un vector 1-dimensional (muy grande). Cuando se quiere almacenar vectores n-dimensionales, sin embargo, el problema ya no es evidente. Supongamos que queremos representar esta simple matriz de dos dimensiones:

\mathbf{A} =
\begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{bmatrix}

La forma más común de indexar esta matriz (o vector 2-dimensional) es utilizando la convención RC (del inglés Row-Column, fila-columna), en la que los elementos se referencian indicando primero la fila y luego la columna (ejemplo, A_{row,col}\,), de esta forma se tiene que:

A_{1,1}=1,\ A_{1,2}=2,\ \ldots,\ A_{3,2}=8,\ A_{3,3}=9\,

La indexación de vectores multidimensionales se puede hacer de alguna de estas maneras:

  • Orden fila-principal: Los elementos de cada fila son almacenados en orden, primero una fila, luego otra, y así sucesivamente. Este método se utiliza sobre todo en los arrays estáticos declarados en C.
1 2 3 4 5 6 7 8 9
  • Orden columna-principal: Análogo al anterior pero esta vez almacenando los elementos por columnas en vez de por filas:
1 4 7 2 5 8 3 6 9
Vector 2-dimensional almacenado en un vector 1-dimensional de vectores 1-dimensionales.
  • Vector de vectores (o array de arrays): Típicamente, los vectores multidimensionales se representan utilizando un vector 1-dimensional que contiene referencias (o punteros) a otros vectores 1-dimensionales. Estos subvectores pueden ser, indistintamente, las filas o las columnas de la matriz, todo depende del criterio o la interpretación que se quiera tomar.

Las dos primeras formas son más compactas y tienen potencialmente mejor localización de referencia, pero también son más limitadas; los vectores deben ser rectangulares, en el sentido de que ninguna fila puede contener más elementos otra. Los vectores de vectores, por otro lado, permiten la creación de vectores desiguales, también llamados vectores dentados, en la que el rango válido de un índice depende del valor de otro, o dicho con otras palabras, que las diferentes filas (o columnas) pueden ser de diferentes tamaños. Los vectores de vectores también son de utilidad en los lenguajes de programación que sólo permiten vectores 1-dimensionales como primitivas.

En muchas aplicaciones, como aplicaciones numéricas que trabajan con matrices, hay que iterar sobre vectores rectangulares 2-dimensionales de forma predecible. Por ejemplo, calcular un elemento de la matriz producto A x B implica iterar sobre una fila de A y una columna de B simultáneamente. Al indexar los elementos de la matriz según se encuentre esta almacenada en memoria, se deben optimizar las operaciones de localización de cada elemento tanto como se pueda. A veces, un compilador puede determinar automáticamente el diseño de la serie secuencial de elementos de un vector para que se almacenen también secuencialmente en memoria, en nuestro ejemplo, podría elegir el orden de fila-principal para A, y el orden columna-principal para B. Existen más formas de almacenar los elementos de una matriz en memoria, que serán más eficientes para otro tipo de problemas, por ejemplo si se quiere iterar sobre la diagonal principal de una matriz.

Véase también


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • Multidimensional scaling — (MDS) is a set of related statistical techniques often used in information visualization for exploring similarities or dissimilarities in data. MDS is a special case of ordination. An MDS algorithm starts with a matrix of item–item similarities,… …   Wikipedia

  • Vector quantization — is a classical quantization technique from signal processing which allows the modeling of probability density functions by the distribution of prototype vectors. It was originally used for data compression. It works by dividing a large set of… …   Wikipedia

  • Multidimensional database — Multidimensional databases are variously (depending on the context) data aggregators which combine data from a multitude of data sources; databases which offer networks, hierarchies, arrays and other data formats difficult to model in SQL; or… …   Wikipedia

  • Vector-field consistency — [ designation coined by L. Veiga. ] is a consistency model for replicated data (e.g., objects), described in the paper by cite paper | author=Nuno Santos, Luís Veiga, Paulo Ferreira | date=2007 | title=Vector Field Consistency for Adhoc Gaming|… …   Wikipedia

  • vector space — Math. an additive group in which addition is commutative and with which is associated a field of scalars, as the field of real numbers, such that the product of a scalar and an element of the group or a vector is defined, the product of two… …   Universalium

  • multidimensional array — noun a) A data structure consisting of a vector of vectors, in the case of a 2 dimensional array, or, in the case of an N dimensional array, a vector of multidimensional arrays of degree N minus 1, thereby allowing the simulation of a N… …   Wiktionary

  • Multidimensional hierarchical toolkit — The Multidimensional hierarchical toolkit or Multi Dimensional and Hierarchical (MDH) Database Toolkit is a Linux based, open sourced, toolkit of portable software that supports very fast, flexible, multi dimensional and hierarchical storage,… …   Wikipedia

  • Multidimensional Chebyshev's inequality — In probability theory, the multidimensional Chebyshev s inequality is a generalization of Chebyshev s inequality, which puts a bound on the probability of the event that a random variable differs from its expected value by more than a specified… …   Wikipedia

  • Base de datos multidimensional — Saltar a navegación, búsqueda Las bases de datos multidimensionales se utilizan principalmente para crear aplicaciones OLAP y pueden verse como bases de datos de una sola tabla, su peculiaridad es que por cada dimensión tienen un campo (o… …   Wikipedia Español

  • Iliffe vector — In computer programming, an Iliffe vector is a data structure used to implement multi dimensional arrays. Named after John K. Iliffe, an Iliffe vector for an n dimensional array (where n >2) consists of a vector (or 1 dimensional array) of… …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”