Repeat copies of array elements using for loop/while

3 visualizzazioni (ultimi 30 giorni)
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 Commenti
Image Analyst
Image Analyst il 27 Feb 2022
What if you subtract 1 from i before multiplying it by 2?
Juan Pérez Álvarez
Juan Pérez Álvarez il 27 Feb 2022
Modificato: Image Analyst il 27 Feb 2022
Finally I figured out. Thank you. Got it:
for i =1:4
Vec((2*i)-1:i*2) = i;
end

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 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

Più risposte (0)

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by