# repelem

Repeat copies of array elements

## Description

,
where `u`

= repelem(`v`

,`n`

)`v`

is a scalar or vector, returns a vector
of repeated elements of `v`

.

If

`n`

is a scalar, then each element of`v`

is repeated`n`

times. The length of`u`

is`length(v)*n`

.If

`n`

is a vector, then it must be the same length as`v`

. Each element of`n`

specifies the number of times to repeat the corresponding element of`v`

.

This syntax is not supported for `table`

input.

returns
an array with each element of `B`

= repelem(`A`

,`r1,...,rN`

)`A`

repeated according
to `r1,...,rN`

. Each `r1,...,rN`

must
either be a scalar or a vector with the same length as `A`

in
the corresponding dimension. For example, if `A`

is
a matrix, `repelem(A,2,3)`

returns a matrix containing
a `2`

-by-`3`

block of each element
of `A`

.

## Examples

### Repeat Vector Elements

Create a vector and repeat each of its elements three times into a new vector.

v = [1 2 3 4]; u = repelem(v,3)

`u = `*1×12*
1 1 1 2 2 2 3 3 3 4 4 4

Repeat the first two elements of `v`

twice and the last two elements three times.

u = repelem(v,[2 2 3 3])

`u = `*1×10*
1 1 2 2 3 3 3 4 4 4

### Repeat Matrix Elements

Create a matrix and repeat each element into a 3-by-2 block of a new matrix.

A = [1 2; 3 4]

`A = `*2×2*
1 2
3 4

B = repelem(A,3,2)

`B = `*6×4*
1 1 2 2
1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4
3 3 4 4

### Repeat Matrix Columns

Create a matrix and copy its columns into a new array, repeating the first column twice and second column three times.

A = [1 2; 3 4]

`A = `*2×2*
1 2
3 4

B = repelem(A,1,[2 3])

`B = `*2×5*
1 1 2 2 2
3 3 4 4 4

### Combine Vector Elements

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

`v`

— Input element

scalar | vector

Input element, specified as a scalar or a vector.

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

| `logical`

| `char`

| `string`

| `struct`

| `table`

| `cell`

| `datetime`

| `duration`

**Complex Number Support: **Yes

`n`

— Number of times to repeat each element

scalar | vector

Number of times to repeat each element, specified as a scalar
or a vector. If `n`

is a scalar, then all elements
of `v`

are repeated `n`

times. If `n`

is
a vector, then each element of `n`

specifies the
number of times to repeat the corresponding element of `v`

.
In either case, `n`

must be integer-valued.

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

`A`

— Input array

matrix | multidimensional array

Input array, specified as a matrix or multidimensional array.

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

| `logical`

| `char`

| `struct`

| `table`

| `cell`

| `datetime`

| `duration`

**Complex Number Support: **Yes

`r1,...,rN`

— Repetition factors for each dimension (as separate arguments)

scalars | vectors

Repetition factors for each dimension, specified as separate
arguments of integer-valued scalars or vectors. If `A`

is
a table, each repetition factor must be a scalar.

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

## Output Arguments

`u`

— Output vector

vector

Output vector. If `v`

is a row vector or scalar, `u`

is
a row vector. If `v`

is a column vector, `u`

is
also a column vector.

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

| `logical`

| `char`

| `string`

| `struct`

| `table`

| `cell`

| `datetime`

| `duration`

`B`

— Output array

matrix | multidimensional array

Output array, returned as a matrix or multidimensional array.

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

| `logical`

| `char`

| `string`

| `struct`

| `table`

| `cell`

| `datetime`

| `duration`

## Extended Capabilities

### Tall Arrays

Calculate with arrays that have more rows than fit in memory.

This function supports tall arrays with the limitations:

The two-input syntax is not supported.

The replication factor in the first dimension must be 1. For example,

`repelem(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:

The input must be a vector or matrix. The input cannot be a multidimensional array.

### GPU Code Generation

Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Usage notes and limitations:

The input must be a vector or matrix. The input cannot be a multidimensional array.

### 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™.

The `repelem`

function
fully supports GPU arrays. To run the function on a GPU, specify the input data as a `gpuArray`

(Parallel Computing Toolbox). 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 in R2015a**

## 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:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### 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
- United Kingdom (English)