Main Content

Indexación de arreglos

Cada variable en MATLAB® es un arreglo que puede contener muchos números. Cuando desee acceder a una selección de elementos de un arreglo, utilice la indexación.

Por ejemplo, considere la matriz de 4 por 4 A:

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4

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

Existen dos formas de referirse a un elemento particular de un arreglo. La manera más común es a través de la especificación de subíndices de fila y columna, como por ejemplo:

A(4,2)
ans = 14

Menos común, pero a veces útil, es el uso de un subíndice único que recorre cada columna en orden:

A(8)
ans = 14

El uso de un subíndice único para hacer referencia a un elemento particular de un arreglo se conoce como indexación lineal.

Si intenta hacer referencia a elementos externos a un arreglo en el lado derecho de una instrucción de asignación, MATLAB genera un error.

test = A(4,5)

Index in position 2 exceeds array bounds (must not exceed 4).

Sin embargo, es posible especificar elementos fuera de las dimensiones actuales en el lado izquierdo de una instrucción de asignación. El tamaño del arreglo aumenta para dar cabida a los nuevos elementos.

A(4,5) = 17
A = 4×5

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

Para referirse a varios elementos de un arreglo, use el operador de dos puntos, que le permite especificar un rango de la forma start:end. Por ejemplo, enumere los elementos en las primeras tres filas y la segunda columna de A:

A(1:3,2)
ans = 3×1

     2
     6
    10

Los dos puntos solos, sin valores de inicio o fin, especifican todos los elementos de esa dimensión. Por ejemplo, seleccione todas las columnas en la tercera fila de A:

A(3,:)
ans = 1×5

     9    10    11    12     0

El operador de dos puntos también le permite crear un vector de valores uniformemente espaciados mediante el uso de la forma más general, start:step:end.

B = 0:10:100
B = 1×11

     0    10    20    30    40    50    60    70    80    90   100

Si se omite el paso intermedio, como en start:end, MATLAB utiliza por defecto un paso de 1.