Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Crear, concatenar y expandir matrices

La estructura de datos más básica de MATLAB® es la matriz. Una matriz es una matriz bidimensional y rectangular de elementos de datos organizados en filas y columnas. Los elementos pueden ser números, valores lógicos (o), fechas y horas, cadenas o algún otro tipo de datos de MATLAB.truefalse

Incluso un solo número se almacena como una matriz. Por ejemplo, una variable que contiene el valor 100 se almacena como una matriz de tipo 1 por 1.double

A = 100; whos A
  Name      Size            Bytes  Class     Attributes    A         1x1                 8  double               

Construyendo una matriz de datos

Si tiene un conjunto específico de datos, puede organizar los elementos en una matriz mediante corchetes. Una sola fila de datos tiene espacios o comas entre los elementos, y un punto y coma separa las filas. Por ejemplo, cree una sola fila de cuatro elementos numéricos. El tamaño de la matriz resultante es 1-por-4, ya que tiene una fila y cuatro columnas. Una matriz de esta forma se conoce a menudo como un vector de fila.

A = [12 62 93 -8]
A = 1×4

    12    62    93    -8

sz = size(A)
sz = 1×2

     1     4

Ahora crea una matriz con los mismos números, pero organílas en dos filas. Esta matriz tiene dos filas y dos columnas.

A = [12 62; 93 -8]
A = 2×2

    12    62
    93    -8

sz = size(A)
sz = 1×2

     2     2

Funciones matriciales especializadas

MATLAB tiene muchas funciones que ayudan a crear matrices con ciertos valores o una estructura particular. Por ejemplo, las funciones y crean matrices de todos los ceros o todos.zerosones El primer y segundo argumentos de estas funciones son el número de filas y el número de columnas de la matriz, respectivamente.

A = zeros(3,2)
A = 3×2

     0     0
     0     0
     0     0

B = ones(2,4)
B = 2×4

     1     1     1     1
     1     1     1     1

La función coloca los elementos de entrada en la diagonal de una matriz.diag Por ejemplo, cree un vector de fila que contenga cuatro elementos.A A continuación, cree una matriz de 4 por 4 cuyos elementos diagonales sean los elementos de.A

A = [12 62 93 -8]; B = diag(A)
B = 4×4

    12     0     0     0
     0    62     0     0
     0     0    93     0
     0     0     0    -8

Concatenación de matrices

También puede utilizar corchetes para unir matrices existentes. Se llama a esta forma de crear una matriz.concatenation Por ejemplo, concatenar dos vectores de fila para crear un vector de fila aún más largo.

A = ones(1,4); B = zeros(1,4); C = [A B]
C = 1×8

     1     1     1     1     0     0     0     0

Para organizar y como dos filas de una matriz, utilice el punto y coma.AB

D = [A;B]
D = 2×4

     1     1     1     1
     0     0     0     0

Para concatenar dos matrices, deben tener tamaños compatibles. En otras palabras, cuando se concatenan matrices horizontalmente, deben tener el mismo número de filas. Cuando los concatenan verticalmente, deben tener el mismo número de columnas. Por ejemplo, concatenar horizontalmente dos matrices que tienen dos filas.

A = ones(2,3)
A = 2×3

     1     1     1
     1     1     1

B = zeros(2,2)
B = 2×2

     0     0
     0     0

C = [A B]
C = 2×5

     1     1     1     0     0
     1     1     1     0     0

Una forma alternativa de concatenar matrices es utilizar funciones de concatenación como, que concatenan horizontalmente dos matrices de entrada compatibles.horzcat

D = horzcat(A,B)
D = 2×5

     1     1     1     0     0
     1     1     1     0     0

Generar una secuencia numérica

Es una forma práctica de crear matrices cuyos elementos son secuenciales y espaciados uniformemente.colon Por ejemplo, cree un vector de fila cuyos elementos sean los enteros de 1 a 10.

A = 1:10
A = 1×10

     1     2     3     4     5     6     7     8     9    10

Puede utilizar el operador de dos puntos para crear una secuencia de números dentro de cualquier rango, incrementado por uno.

A = -2.5:2.5
A = 1×6

   -2.5000   -1.5000   -0.5000    0.5000    1.5000    2.5000

Para cambiar el valor del incremento de secuencia, especifique el valor de incremento entre los valores de intervalo inicial y final, separados por dos puntos.

A = 0:2:10
A = 1×6

     0     2     4     6     8    10

Para decrementar, utilice un número negativo.

A = 6:-1:0
A = 1×7

     6     5     4     3     2     1     0

También puede incrementar por valores no enteros. Si un valor de incremento no particiona uniformemente el rango especificado, MATLAB finaliza automáticamente la secuencia en el último valor al que puede llegar antes de superar el intervalo.

A = 1:0.2:2.1
A = 1×6

    1.0000    1.2000    1.4000    1.6000    1.8000    2.0000

Expandir una matriz

Puede agregar uno o más elementos a una matriz colocándolos fuera de los límites de índice de fila y columna existentes. MATLAB rellena automáticamente la matriz con ceros para mantenerla rectangular. Por ejemplo, cree una matriz de 2 por 3 y agregue una fila y una columna adicionales insertando un elemento en la posición (3, 4).

A = [10  20  30; 60  70  80]
A = 2×3

    10    20    30
    60    70    80

A(3,4) = 1 
A = 3×4

    10    20    30     0
    60    70    80     0
     0     0     0     1

También puede expandir el tamaño insertando una nueva matriz fuera de los rangos de índices existentes.

A(4:5,5:6) = [2 3; 4 5]
A = 5×6

    10    20    30     0     0     0
    60    70    80     0     0     0
     0     0     0     1     0     0
     0     0     0     0     2     3
     0     0     0     0     4     5

Para expandir el tamaño de una matriz repetidamente, como dentro de un bucle, normalmente es mejor preasignar espacio para la matriz más grande que se prevé crear.for Sin preasignación, MATLAB tiene que asignar memoria cada vez que el tamaño aumenta, ralentizando las operaciones. Por ejemplo, preasigne una matriz que contenga hasta 10.000 filas y 10.000 columnas mediante la inicialización de sus elementos a cero.

A = zeros(10000,10000);

Si necesita preasignar elementos adicionales más adelante, puede expandirlo asignando fuera de los rangos de índice de la matriz o concatenando otra matriz preasignada.A

Los arrays vacíos

Una matriz vacía en MATLAB es una matriz con al menos una longitud de cota igual a cero. Las matrices vacías son útiles para representar el concepto de "Nothing" mediante programación. Por ejemplo, supongamos que desea buscar todos los elementos de un vector que son menores que 0, pero no hay ninguno. La función devuelve un vector vacío de índices, indicando que no pudo encontrar ningún elemento menor que 0.find

A = [1 2 3 4]; ind = find(A<0)
ind =    1x0 empty double row vector 

Muchos algoritmos contienen llamadas a funciones que pueden devolver matrices vacías. A menudo es útil permitir que las matrices vacías fluyan a través de estos algoritmos como argumentos de función en lugar de manejarlos como un caso especial. Si necesita personalizar el control de matrices vacías, puede comprobar si se usa la función.isempty

TF = isempty(ind)
TF = logical
   1

Temas relacionados