repeating elements of a vector in a certain manner

1 次查看(过去 30 天)
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!

采纳的回答

Star Strider
Star Strider 2016-2-23
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

更多回答(1 个)

Walter Roberson
Walter Roberson 2016-2-23
B = reshape([A;A;A], 1, [])
  1 个评论
Mnr
Mnr 2016-2-23
Thanks! but what about for any m? In other words, how can I write reshape([A;A;A]) for m>3?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by