Función repelem() de MATLAB

Ammar Ali 20 junio 2023
Función repelem() de MATLAB

Este tutorial analizará la repetición de copias de elementos de matriz mediante la función repelem() de MATLAB.

Función repelem() de MATLAB

La creación manual de una matriz de muchos elementos lleva mucho tiempo porque tenemos que escribir cada elemento de la matriz. Pero podemos usar bucles y algunas funciones integradas de Matlab para crear una matriz de muchos elementos en poco tiempo.

La función repelem() también se utiliza para crear arrays de un gran número de elementos en poco tiempo repitiendo un escalar o un vector. La función repelem() se utiliza para repetir copias de elementos de un arreglo y crear un nuevo arreglo o matriz a partir de los elementos repetidos.

La función repelem() tiene dos sintaxis, y la primera sintaxis se muestra a continuación.

output = repelem(v,n)

La primera sintaxis devolverá un vector de elementos repetidos de vector o escalar v. Si n es un escalar, los valores del vector de entrada v se repetirán n veces, y la longitud del vector de salida será igual a la longitud del vector de entrada multiplicada por n.

Si n es un vector, cada elemento del vector v se repetirá según el elemento correspondiente del vector n, y el vector n deberá tener la misma longitud que el vector de entrada v. La longitud del vector de salida será igual a la suma de los n elementos del vector.

En otras palabras, el primer elemento del vector v se repetirá según el primer elemento del vector n y así sucesivamente. Por ejemplo, creemos un vector y repitamos para crear dos nuevos vectores.

Vea el código a continuación.

clc
clear

X = [1 2 3]
Y = repelem(X,2)
Z = repelem(X,[1 2 3])

Producción :

X =

     1     2     3


Y =

     1     1     2     2     3     3


Z =

     1     2     2     3     3     3

En el código anterior, repetimos cada elemento del vector X dos veces para crear el nuevo vector Y. Repetimos el primer elemento del vector X una vez, el segundo elemento del vector X dos veces y el tercer elemento tres veces para crear el nuevo vector Z.

Podemos ver en la salida que cada elemento del vector X se repite dos veces para crear el vector Y, y el vector Z muestra que se crea de acuerdo con el vector definido como segundo argumento en el segundo función repelem().

La segunda sintaxis de la función repelem() se muestra a continuación:

output = repelem(m,r1,...,rN)

La segunda sintaxis se usa para repetir elementos de una matriz para crear una nueva matriz y matriz 2D o 3D. El primer argumento m es la matriz o arreglo de entrada, que puede ser de cualquier dimensión.

Todos los demás argumentos se usan para establecer el tamaño del bloque, que se usa para repetir cada elemento de la matriz o matriz de entrada, y puede ser un escalar o un vector de la misma longitud que la dimensión específica de la matriz de entrada. Por ejemplo, si pasamos 2 y 3 como segundo y tercer argumento dentro de la función repelem(), creará una matriz de 2 por 3 repitiendo cada elemento de la matriz de entrada y colocándolo en la nueva matriz.

En otras palabras, cada elemento de la matriz de entrada se repetirá dos veces en la fila o primera dimensión y 3 veces en la columna o segunda dimensión para crear el nuevo arreglo o matriz. Si pasamos el cuarto argumento, cada elemento de la matriz de entrada también se repetirá en la tercera dimensión para crear una matriz o matriz multidimensional.

Por ejemplo, creemos una matriz de 2 por 2 y repitamos sus elementos para crear una nueva matriz. Vea el código a continuación.

clc
clear

X = magic(2)
Y = repelem(X,2,2)

Producción :

X =

     1     3
     4     2


Y =

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

En el código anterior, repetimos cada elemento de la matriz de entrada dos veces en la primera dimensión o fila y dos veces en la segunda dimensión o columna para crear la nueva matriz. El tamaño de la matriz de salida será igual a la multiplicación de las dimensiones específicas del vector de entrada y el tamaño del bloque.

En el ejemplo anterior, el tamaño de la matriz de salida será de 4 por 4 porque el tamaño de la matriz de entrada es de 2 por 2 y el tamaño del bloque también es de 2 por 2. Las dimensiones de la matriz de salida serán iguales a la dimensión del tamaño del bloque como en el ejemplo anterior, el bloque tiene dos dimensiones y la matriz de salida también tiene dos dimensiones.

Si no queremos repetir un elemento en una dimensión específica, podemos pasar uno como el valor de esa dimensión. Por ejemplo, si no queremos repetir los elementos en la primera dimensión o fila para que el número de filas sea el mismo, podemos pasar uno como segundo argumento en el código anterior.

En el ejemplo anterior, cada elemento se repetirá 2 veces en ambas dimensiones. Pero si queremos repetir cada elemento según nuestros requisitos, podemos utilizar un vector de la misma longitud que la dimensión específica, que definirá el número de veces que se repetirán los elementos específicos.

Por ejemplo, repitamos el ejemplo anterior y repitamos solo los valores de columna según un vector. Vea el código a continuación.

clc
clear

X = magic(2)
Y = repelem(X,1,[3 2])

Producción :

X =

     1     3
     4     2


Y =

     1     1     1     3     3
     4     4     4     2     2

En el código anterior, estamos repitiendo la primera columna de la matriz de entrada 3 veces y la segunda columna 2 veces para crear una nueva matriz Y. Podemos ver en el resultado anterior que el número de filas de la matriz de salida es el mismo que el número de filas de la matriz de entrada porque no hemos repetido las filas, y el número de columnas ha aumentado porque repetimos la primera columna tres veces y la segunda columna 2 veces.

Podemos hacer esta operación con cualquier dimensión. También podemos usar la función repelem() para crear una tabla grande a partir de una tabla pequeña repitiendo sus valores en dimensiones específicas.

Por ejemplo, creemos una tabla usando la función table() y luego creemos otra tabla grande repitiendo los valores 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 = repelem(T_1, 2,2)

Producción :

T_1 =

  2×2 table

    Age    Height
    ___    ______

    19       60
    16       53


T_2 =

  4×4 table

    Age    Age_1    Height    Height_1
    ___    _____    ______    ________

    19      19        60         60
    19      19        60         60
    16      16        53         53
    16      16        53         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 Array