Repmat en MATLAB

Ammar Ali 13 junio 2022
Repmat en MATLAB

Este tutorial discutirá cómo hacer una matriz con los valores repetidos de una matriz usando la función repmat() en MATLAB.

Función repmat() de MATLAB

La función repmat() crea grandes matrices a partir de una pequeña matriz. La función repite los valores dados de la matriz para crear la matriz grande.

La función repmat() tiene tres sintaxis básicas. La primera sintaxis se da a continuación.

M = repmat(A,n);

La sintaxis anterior devuelve una matriz que contiene las n copias de A en las dimensiones de filas y columnas. Cuando A es una matriz, la matriz de salida M será igual al tamaño de la matriz A multiplicado por n, mayor que el tamaño de A.

El primer argumento de la función repmat() es que la matriz de entrada puede ser una matriz escalar, matricial, vectorial o multidimensional. El segundo argumento establecerá la cantidad de veces que se repetirá la matriz de entrada en las dimensiones de fila y columna.

La segunda sintaxis de la función repmat() se encuentra a continuación.

M = repmat(A,r1,...,rN);

La sintaxis anterior devuelve una lista de escalares que describen la disposición de las copias de A en cada dimensión. Cuando A es una matriz de N dimensiones, el tamaño de M es mayor que el de A.

El r1 definirá el número de veces que se repetirá la matriz de entrada en la primera dimensión. La tercera sintaxis de la función repmat() se muestra a continuación.

M = repmat(A,r);

La sintaxis anterior devuelve una matriz que contiene copias de A en las dimensiones de filas y columnas según el esquema de repetición con vector de fila r.

Por ejemplo, podemos definir el número de veces que el arreglo o matriz dada se repetirá en la dimensión de fila y columna utilizando el vector r, que contendrá el número de veces que el arreglo o matriz de entrada se repetirá para crear la salida. matriz.

Podemos usar la función repmat() para crear una matriz repitiendo un solo valor. Por ejemplo, creemos una matriz de 2 por 2 que contenga el valor 5.

Vea el código a continuación.

clc
clear

M = repmat(5,2,2)

Producción :

M =

     5     5
     5     5

Los comandos clc y clear se utilizan para borrar el comando y la ventana del espacio de trabajo en el código anterior. La salida es una matriz de 2 por 2 que contiene solo el número 5.

También podemos usar la función repmat() para crear una matriz a partir de la repetición de otra matriz. Por ejemplo, creemos una matriz diagonal usando la función diag() y luego creemos una matriz repitiendo la matriz diagonal.

Vea el código a continuación.

clc
clear

D = diag([5 15 25])
M = repmat(D,2,3)

Producción :

D =

     5     0     0
     0    15     0
     0     0    25


M =

     5     0     0     5     0     0     5     0     0
     0    15     0     0    15     0     0    15     0
     0     0    25     0     0    25     0     0    25
     5     0     0     5     0     0     5     0     0
     0    15     0     0    15     0     0    15     0
     0     0    25     0     0    25     0     0    25

En el código anterior, repetimos la matriz diagonal 2 veces en la dimensión de la fila y 3 veces en la dimensión de la columna.

El tamaño de la matriz de salida será de 6 por 9 porque la entrada tiene tres filas y lo repetimos 2 veces para que el tamaño de la fila de salida sea 6 y la matriz de entrada tenga tres columnas y las repetimos 3 veces para que el tamaño de la columna de salida sea 9.

También podemos hacer matrices 3D con la función repmat(). Tenemos que usar tres valores en el esquema de repetición.

Por ejemplo, creemos una matriz de 6 por 3 por 2 usando la función repmat(). Vea el código a continuación.

clc
clear

D = diag([5 15 25])
M = repmat(D,2,1,2)

Producción :

D =

     5     0     0
     0    15     0
     0     0    25


M(:,:,1) =

     5     0     0
     0    15     0
     0     0    25
     5     0     0
     0    15     0
     0     0    25


M(:,:,2) =

     5     0     0
     0    15     0
     0     0    25
     5     0     0
     0    15     0
     0     0    25

Como podemos ver, la matriz de salida es una matriz tridimensional. También podemos crear una matriz con una pila horizontal o vertical de vectores de fila.

Por ejemplo, si no queremos repetir el vector en una dimensión, podemos pasar 1 en su lugar. Dentro de la función repmat(), el segundo argumento define el esquema de repetición para la primera dimensión o la fila.

El tercer argumento define el esquema de repetición para la segunda dimensión o la columna.

Por ejemplo, creemos una matriz con una pila horizontal de un vector fila. Vea el código a continuación.

clc
clear

D = (1:5)'
M = repmat(D,1,5)

Producción :

D =

     1
     2
     3
     4
     5


M =

     1     1     1     1     1
     2     2     2     2     2
     3     3     3     3     3
     4     4     4     4     4
     5     5     5     5     5

En el código anterior, tomamos la transposición del vector dado para convertirlo en un vector de columna para crear la pila horizontal, pero en el caso de la pila vertical, no tenemos que tomar la transposición del vector dado.

También podemos usar la función repmat() para crear una tabla grande a partir de una tabla pequeña. Por ejemplo, creemos una tabla usando la función table() y creemos otra tabla grande a partir de la primera tabla.

Vea el código a continuación.

clc
clear

T_1 = table([19; 16],[60; 53],'VariableNames',{'Age' 'Height'})
T_2 = repmat(T_1, 2,2)

Producción :

T_1 =

  2×2 table

    Age    Height
    ___    ______

    19       60
    16       53


T_2 =

  4×4 table

    Age    Height    Age_1    Height_1
    ___    ______    _____    ________

    19       60       19         60
    16       53       16         53
    19       60       19         60
    16       53       16         53

En el código anterior, repetimos la fila y la dimensión de la columna 2 veces para crear la tabla más grande.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Matrix