Repeat copies of array - MATLAB repmat (2024)

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

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

AInput 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

nNumber 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,...,rNRepetition 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

rVector 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 use B = 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 vectors A= 1:5 and B = (1:10)' to produce a 10-by-5array, use bsxfun(@plus,A,B) instead of repmat(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 as repmat.

    repmat SyntaxEquivalentAlternative
    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

HDL Code Generation
Generate VHDL, Verilog and SystemVerilog code for FPGA and ASIC designs using HDL Coder™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Version History

Introduced before R2006a

expand all

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.

Repeat copies of array - MATLAB repmat (1)

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

Contact your local office

Repeat copies of array - MATLAB repmat (2024)

References

Top Articles
Latest Posts
Article information

Author: Amb. Frankie Simonis

Last Updated:

Views: 5547

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Amb. Frankie Simonis

Birthday: 1998-02-19

Address: 64841 Delmar Isle, North Wiley, OR 74073

Phone: +17844167847676

Job: Forward IT Agent

Hobby: LARPing, Kitesurfing, Sewing, Digital arts, Sand art, Gardening, Dance

Introduction: My name is Amb. Frankie Simonis, I am a hilarious, enchanting, energetic, cooperative, innocent, cute, joyous person who loves writing and wants to share my knowledge and understanding with you.