repeating elements of a vector in a certain manner

Hello all, I have a vector A of length n. I would like to create a new vector B which contains each element of A repeated m times; i.e. length of B is mxn. For example, let A=[2 4 5 7 8]; m=3; then, B=[2 2 2 4 4 4 5 5 5 7 7 7 8 8 8]; What is the fastest way of doing that? Thanks!

 Accepted Answer

Two options, both producing the same output:
A=[2 4 5 7 8];
B1 = repelem(A,3) % Introduced in R2015a
B2 = reshape(repmat(A, 3, 1), [], 1)'
B1 =
2 2 2 4 4 4 5 5 5 7 7 7 8 8 8
B2 =
2 2 2 4 4 4 5 5 5 7 7 7 8 8 8

More Answers (1)

B = reshape([A;A;A], 1, [])

1 Comment

Thanks! but what about for any m? In other words, how can I write reshape([A;A;A]) for m>3?

Sign in to comment.

Categories

Asked:

Mnr
on 23 Feb 2016

Answered:

on 23 Feb 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!