Repeat copies of array elements using for loop/while

3 vues (au cours des 30 derniers jours)
Juan Pérez Álvarez
Juan Pérez Álvarez le 26 Fév 2022
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 commentaires
Image Analyst
Image Analyst le 27 Fév 2022
What if you subtract 1 from i before multiplying it by 2?
Juan Pérez Álvarez
Juan Pérez Álvarez le 27 Fév 2022
Modifié(e) : Image Analyst le 27 Fév 2022
Finally I figured out. Thank you. Got it:
for i =1:4
Vec((2*i)-1:i*2) = i;
end

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 27 Fév 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

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by