How can I repeat each element of a vector different times and store them in a new vector

on 19 Feb 2013

Wayne King (view profile)

Dear all,

I am a Matlab novice. I am sorry that my question may be silly.

Does anyone know that how I can repeat each element of a vector different times and then store them in a new vector?

Cheers!

Products

No products are associated with this question.

on 19 Feb 2013

Oleg Komarov

on 19 Feb 2013

A Milestone.

Yufan Miao

Yufan Miao (view profile)

on 20 Feb 2013

Thank you very much for this quick reply. It really helps!

Andrei Bobrov (view profile)

on 20 Feb 2013
Edited by Andrei Bobrov

Andrei Bobrov (view profile)

on 21 Feb 2013

```r = [1 3 3 4 0 5];
x = 1:6;
```
```t = r > 0;
a = cumsum(r(t));
b = zeros(1,a(end));
b(a - r(t) + 1) = 1;
x1 = x(t);
out = x1(cumsum(b));
```

Andrei Bobrov

on 21 Feb 2013

corrected

Jos (10584) (view profile)

on 19 Feb 2013

Wayne pointed you to a run-length decoder/encoder.

Things become more simple if every element is to be repeated the same number of times:

```% repeat all elements of A N times
A = [1 2 3]
N = 3 ;
B1 = reshape(repmat(A(:).',N,1),1,[])
% or
nA = numel(A) ;
B2 = A(ceil((1:nA*N)/nA))
```

Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi