Repeat copies of array
collapse all in page
Syntax
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
Description
example
B = repmat(A,n)
returnsan array containing n
copies of A
inthe row and column dimensions. The size of B
is size(A)*n
when A
isa matrix.
example
B = repmat(A,r1,...,rN)
specifiesa list of scalars, r1,..,rN
, that describes howcopies of A
are arranged in each dimension. When A
has N
dimensions,the size of B
is size(A).*[r1...rN]
.For example, repmat([1 2; 3 4],2,3)
returns a 4-by-6matrix.
example
B = repmat(A,r)
specifiesthe repetition scheme with row vector r
. For example, repmat(A,[23])
returns the same result as repmat(A,2,3)
.
Examples
collapse all
Initialize Matrix with Same Element Value
Open Live Script
Create a 3-by-2 matrix whose elements contain the value 10.
A = repmat(10,3,2)
A = 3×2 10 10 10 10 10 10
Square Block Format
Open Live Script
Repeat copies of a matrix into a 2-by-2 block arrangement.
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
Rectangular Block Format
Open Live Script
Repeat copies of a matrix into a 2-by-3 block arrangement.
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
3-D Block Array
Open Live Script
Repeat copies of a matrix into a 2-by-3-by-2 block arrangement.
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
Vertical Stack of Row Vectors
Open Live Script
Vertically stack a row vector four times.
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
Horizontal Stack of Column Vectors
Open Live Script
Horizontally stack a column vector four times.
A = (1:3)'; B = repmat(A,1,4)
B = 3×4 1 1 1 1 2 2 2 2 3 3 3 3
Tabular Block Format
Open Live Script
Create a table with variables Age
and Height
.
A = table([39; 26],[70; 63],'VariableNames',{'Age' 'Height'})
A=2×2 table Age Height ___ ______ 39 70 26 63
Repeat copies of the table into a 2-by-3 block format.
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
repeats the entries of the table and appends a number to the new variable names.
Combine Vector Elements
Open Live Script
Create two column vectors.
A = [1; 3; 5];B = [2; 4];
Generate all element combinations of the two vectors by using repelem
and repmat
. Each row of the output T
is a combination with the first element coming from the first vector and the second element coming from the second vector. This command is equivalent to finding the Cartesian product of two vectors.
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
Starting in R2023a, you can also use the combinations function to generate all element combinations of two vectors.
T = combinations(A,B)
T=6×2 table A B _ _ 1 2 1 4 3 2 3 4 5 2 5 4
Input Arguments
collapse all
A
— Input array
scalar | vector | matrix | multidimensional array
Input array, specified as a scalar, vector, matrix, or multidimensionalarray.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| table
| datetime
| duration
| calendarDuration
| categorical
| cell
Complex Number Support: Yes
n
— Number of times to repeat input array in row and column dimensions
integer value
Number of times to repeat the input array in the row and columndimensions, specified as an integer value. If n
is 0
ornegative, the result is an empty array.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
r1,...,rN
— Repetition factors for each dimension (as separate arguments)
integer values
Repetition factors for each dimension, specified as separatearguments of integer values. If any repetition factor is 0
ornegative, the result is an empty array.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
r
— Vector of repetition factors for each dimension (as a row vector)
integer values
Vector of repetition factors for each dimension, specified asa row vector of integer values. If any value in r
is 0
ornegative, the result is an empty array.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Tips
To build block arrays by forming the tensor productof the input with an array of ones, use kron.For example, to stack the row vector
A = 1:3
fourtimes vertically, you can useB = kron(A,ones(4,1))
.To create block arrays and perform a binary operationin a single pass, use bsxfun.In some cases,
bsxfun
provides a simpler andmore memory efficient solution. For example, to add the vectorsA= 1:5
andB = (1:10)'
to produce a 10-by-5array, usebsxfun(@plus,A,B)
instead ofrepmat(A,10,1)+ repmat(B,1,5)
.When
A
is a scalar of a certaintype, you can use other functions to get the same result asrepmat
.repmat Syntax EquivalentAlternative 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))
Extended Capabilities
Tall Arrays
Calculate with arrays that have more rows than fit in memory.
This function supports tall arrays with the limitations:
The replication factor in the first dimension must be 1. Forexample,
repmat(TA,1,n,p,...)
.
For more information, see Tall Arrays.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Size arguments must have a fixed size.
For sparse matrices, the
repmat
function does not support trailing ones as inputs after the first two dimensions.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Usage notes and limitations:
Size arguments must have a fixed size.
For sparse matrices, the
repmat
function does not support trailing ones as inputs after the first two dimensions.
HDL Code Generation
Generate VHDL, Verilog and SystemVerilog code for FPGA and ASIC designs using HDL Coder™.
Thread-Based Environment
Run code in the background using MATLAB® backgroundPool
or accelerate code with Parallel Computing Toolbox™ ThreadPool
.
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Version History
Introduced before R2006a
expand all
R2019b: Some repetition arguments produce error
Starting in R2019b, some syntaxes involving nonscalar or empty repetition arguments will produce an error. The following table describes how to update these syntaxes.
Errors | Use Instead |
---|---|
repmat(A,r1,r2) , where r1 and r2 are row vectors | repmat(A,[r1 r2]) |
repmat(A,empt) , where empt is an empty array | repmat(A,1) |
repmat(A,empt1,empt2) , where empt1 and empt2 are empty arrays | repmat(A,1) |
repmat(A,n,empt) , where n is an integer and empt is an empty array | repmat(A,[n 1]) |
See Also
bsxfun | kron | repelem | reshape | resize | paddata | meshgrid | ndgrid
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
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)
Contact your local office