Repetir copias de un arreglo
contraer todo en la página
Sintaxis
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
Descripción
ejemplo
B = repmat(A,n)
devuelve un arreglo que contiene n
copias de A
en las dimensiones de fila y de columna. El tamaño de B
es size(A)*n
cuando A
es una matriz.
ejemplo
B = repmat(A,r1,...,rN)
especifica una lista de escalares, r1,..,rN
, que describe cómo se disponen las copias de A
en cada dimensión. Cuando A
tiene N
dimensiones, el tamaño de B
es size(A).*[r1...rN]
. Por ejemplo, repmat([1 2; 3 4],2,3)
devuelve una matriz de 4 por 6.
ejemplo
B = repmat(A,r)
especifica el esquema de repetición con el vector fila r
. Por ejemplo, repmat(A,[2 3])
devuelve el mismo resultado que repmat(A,2,3)
.
Ejemplos
contraer todo
Inicializar una matriz con un mismo valor del elemento
Abrir script en vivo
Cree una matriz de 3 por 2 cuyos elementos contengan el valor 10.
A = repmat(10,3,2)
A = 3×2 10 10 10 10 10 10
Formato de bloque cuadrado
Abrir script en vivo
Repita copias de una matriz en una disposición de bloque de 2 por 2.
A = diag([100 200 300])
A = 3×3 100 0 0 0 200 0 0 0 300
B = repmat(A,2)
B = 6×6 100 0 0 100 0 0 0 200 0 0 200 0 0 0 300 0 0 300 100 0 0 100 0 0 0 200 0 0 200 0 0 0 300 0 0 300
Formato de bloque rectangular
Abrir script en vivo
Repita copias de una matriz en una disposición de bloque de 2 por 3.
A = diag([100 200 300])
A = 3×3 100 0 0 0 200 0 0 0 300
B = repmat(A,2,3)
B = 6×9 100 0 0 100 0 0 100 0 0 0 200 0 0 200 0 0 200 0 0 0 300 0 0 300 0 0 300 100 0 0 100 0 0 100 0 0 0 200 0 0 200 0 0 200 0 0 0 300 0 0 300 0 0 300
Arreglo de bloque 3D
Abrir script en vivo
Repita copias de una matriz en una disposición de bloque de 2 por 3 por 2.
A = [1 2; 3 4]
A = 2×2 1 2 3 4
B = repmat(A,[2 3 2])
B = B(:,:,1) = 1 2 1 2 1 2 3 4 3 4 3 4 1 2 1 2 1 2 3 4 3 4 3 4B(:,:,2) = 1 2 1 2 1 2 3 4 3 4 3 4 1 2 1 2 1 2 3 4 3 4 3 4
Pila vertical de vectores fila
Abrir script en vivo
Apile verticalmente un vector fila cuatroveces.
A = 1:4;B = repmat(A,4,1)
B = 4×4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Pila horizontal de vectores columna
Abrir script en vivo
Apile horizontalmente un vector columna cuatroveces.
A = (1:3)'; B = repmat(A,1,4)
B = 3×4 1 1 1 1 2 2 2 2 3 3 3 3
Formato de bloque tabular
Abrir script en vivo
Cree una tabla con variables Age
y Height
.
A = table([39; 26],[70; 63],'VariableNames',{'Age' 'Height'})
A=2×2 table Age Height ___ ______ 39 70 26 63
Repita copias de la tabla en un formato de bloque de 2 por 3.
B = repmat(A,2,3)
B=4×6 table Age Height Age_1 Height_1 Age_2 Height_2 ___ ______ _____ ________ _____ ________ 39 70 39 70 39 70 26 63 26 63 26 63 39 70 39 70 39 70 26 63 26 63 26 63
repmat
repite las entradas de la tabla y anexa un número a los nuevos nombres de variable.
Combinar elementos de vectores
Abrir script en vivo
Cree dos vectores columna.
A = [1; 3; 5];B = [2; 4];
Genere combinaciones de todos los elementos de los dos vectores mediante repelem
y repmat
. Cada fila de la salida T
es una combinación con el primer elemento procedente del primer vector y el segundo elemento procedente del segundo vector. Este comando equivale a encontrar el producto cartesiano de dos vectores.
T = [repelem(A,numel(B)) repmat(B,numel(A),1)]
T = 6×2 1 2 1 4 3 2 3 4 5 2 5 4
A partir de la versión R2023a, también puede utilizar la función combinations para generar todas las combinaciones de elementos de dos vectores.
T = combinations(A,B)
T=6×2 table A B _ _ 1 2 1 4 3 2 3 4 5 2 5 4
Argumentos de entrada
contraer todo
A
— Arreglo de entrada
escalar | vector | matriz | arreglo multidimensional
Arreglo de entrada, especificado como escalar, vector, matriz o arreglo multidimensional.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| table
| datetime
| duration
| calendarDuration
| categorical
| cell
Soporte de números complejos: Sí
n
— Número de veces que repetir un arreglo de entrada en las dimensiones de fila y de columna
valor entero
Número de veces que repetir un arreglo de entrada en las dimensiones de fila y de columna, especificado como valor entero. Si n
es 0
o negativo, el resultado es un arreglo vacío.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
r1,...,rN
— Factores de repetición para cada dimensión (como argumentos separados)
valores enteros
Factores de repetición para cada dimensión, especificados como argumentos separados de valores enteros. Si cualquier factor de repetición es 0
o negativo, el resultado es un arreglo vacío.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
r
— Vector de factores de repetición para cada dimensión (como vector fila)
valores enteros
Vector de factores de repetición para cada dimensión, especificado como vector fila de valores enteros. Si cualquier valor de r
es 0
o negativo, el resultado es un arreglo vacío.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Sugerencias
Para construir arreglos de bloque formando el producto tensorial de la entrada con un arreglo de unos, utilice kron. Por ejemplo, para apilar el vector fila
A = 1:3
cuatroveces verticalmente, puede utilizarB = kron(A,ones(4,1))
.Para crear arreglos de bloque y ejecutar una operación binaria en un único paso, utilice bsxfun. En algunos casos,
bsxfun
ofrece una solución más sencilla y más eficiente en el uso de la memoria. Por ejemplo, para añadir los vectoresA = 1:5
yB = (1:10)'
a fin de producir un arreglo de 10 por 5, utilicebsxfun(@plus,A,B)
en lugar derepmat(A,10,1) + repmat(B,1,5)
.Cuando
A
es un escalar de un tipo determinado, puede utilizar otras funciones para obtener el mismo resultado querepmat
.sintaxis repmat Alternativa equivalente repmat(NaN,m,n)
NaN(m,n)
repmat(single(inf),m,n)
inf(m,n,'single')
repmat(int8(0),m,n)
zeros(m,n,'int8')
repmat(uint32(1),m,n)
ones(m,n,'uint32')
repmat(eps,m,n)
eps(ones(m,n))
Capacidades ampliadas
Arreglos altos
Realice cálculos con arreglos que tienen más filas de las que caben en la memoria.
Esta función es compatible con arreglos altos, con las siguientes limitaciones:
El factor de replicación de la primera dimensión debe ser 1. Por ejemplo,
repmat(TA,1,n,p,...)
.
Para obtener más información, consulte Arreglos altos.
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Notas y limitaciones de uso:
Los argumentos de tamaño deben tener un tamaño fijo.
En matrices dispersas, la función
repmat
no permite añadir unosposteriores como entradas después de las dosprimeras dimensiones.
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Notas y limitaciones de uso:
Los argumentos de tamaño deben tener un tamaño fijo.
En matrices dispersas, la función
repmat
no permite añadir unosposteriores como entradas después de las dosprimeras dimensiones.
Generación de código HDL
Genere código VHDL, Verilog y SystemVerilog para diseños FPGA y ASIC mediante HDL Coder™.
Entorno basado en subprocesos
Ejecute código en segundo plano con MATLAB® backgroundPool
o acelere código con Parallel Computing Toolbox™ ThreadPool
.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en un entorno basado en subprocesos.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos de GPU. Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Arreglos distribuidos
Realice particiones de arreglos grandes por toda la memoria combinada de su cluster mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos distribuidos. Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
expandir todo
R2019b: Algunos argumentos de repetición provocan errores
A partir de la versión R2019b, algunas sintaxis con argumentos de repetición no escalares o vacíos producen errores. La tabla siguiente describe cómo actualizar esas sintaxis.
Errores | En su lugar, utilice |
---|---|
repmat(A,r1,r2) , donde r1 y r2 son vectores fila | repmat(A,[r1 r2]) |
repmat(A,empt) , donde empt es un arreglo vacío | repmat(A,1) |
repmat(A,empt1,empt2) , donde empt1 y empt2 son arreglos vacíos | repmat(A,1) |
repmat(A,n,empt) , donde n es un entero y empt es un arreglo vacío | repmat(A,[n 1]) |
Consulte también
bsxfun | kron | repelem | reshape | resize | paddata | meshgrid | ndgrid
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本 (日本語)
- 한국 (한국어)
Contact your local office