Asked by Yufan Miao
on 19 Feb 2013

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?

Thank you in advance for the answers

Cheers!

*No products are associated with this question.*

Answer by Wayne King
on 19 Feb 2013

Accepted answer

You can get this from the file exchange.

Answer by Jos (10584)
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))

Answer by Andrei Bobrov
on 20 Feb 2013

Edited by Andrei Bobrov
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));

Opportunities for recent engineering grads.

## 0 Comments