Replicate values in a matrix i-1 times
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I want to create a new array that duplicates the first value of A, then the rest of the values (i-1) times. For example,
A=[1; 4; 8; 3; 2; 6]
I want
B=[1; 4; 8; 8; 3; 3; 3; 2; 2; 2; 2; 6; 6; 6; 6; 6]
My first attempt was a for loop but I couldn't make it work. My other idea is to do C=repmat(A,1,6) and then pull out B=[C(1,1); C(2,1); C(3,1); C(3,2); ..... etc] but I don't know how to automate this, since my actual A has 2000 values.
Any help is appreciated! Thanks.
0 commentaires
Réponses (2)
Fabio Freschi
le 3 Mar 2020
Quick and dirty for loop
A=[1; 4; 8; 3; 2; 6]
B = [];
for i = 1:length(A)
B = [B; repmat(A(i),i,1)];
end
You can also play a bit to allocate correctly B outside the loop. It's a nice exercise
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!