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.

Oleg Komarov
on 19 Feb 2013

A Milestone.

Yufan Miao
on 20 Feb 2013

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

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));

Andrei Bobrov
on 21 Feb 2013

corrected

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))

Related Content

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

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments