Repeat copies of array elements using for loop/while

3 views (last 30 days)
Hi, I need create a code where the elements of an array are repeat:
For example:
% Create a simple vector:
for i =1:4
Vec(i) = i;
end
Vec = [1,2,3,4];
If I need repeat the elements of this vector 2 times:
Vec = [1,1,2,2,3,3,4,4];
3 times:
Vec = [1,1,1,2,2,2,3,3,3,4,4,4];
I know using the function: repelem; I can get this result but I need do it using a for loop/while.
¿Any idea?
  6 Comments
Image Analyst
Image Analyst on 27 Feb 2022
What if you subtract 1 from i before multiplying it by 2?
Juan Pérez Álvarez
Juan Pérez Álvarez on 27 Feb 2022
Edited: Image Analyst on 27 Feb 2022
Finally I figured out. Thank you. Got it:
for i =1:4
Vec((2*i)-1:i*2) = i;
end

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 27 Feb 2022
I'd do it slightly differently:
Vec = 1 : 4;
n = 3; % Number of times to repeat each element of Vec
Vec2 = zeros(1, 2 * length(Vec));
for k = 1 : length(Vec)
index1 = (k-1) * n + 1;
index2 = index1 + n - 1;
Vec2(index1 : index2) = Vec(k);
end
Vec2

More Answers (0)

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!