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.