Repetition of elements in a matrix
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Danish Nasir
il 4 Set 2021
Commentato: Walter Roberson
il 4 Set 2021
Suppose i have a matrix A= [25 21 ] . I want to repeat elements by 4 and 2 times respectively. Repeat=[4 2]. However the repeated values will be in proportion i.e. Proportion=[8 17]. The sum of proportion repeated element will be equal to A matrix elements. It means that final matrix will be B= [8 8 8 1 17 4].
(25=8+8+8+1 , 21=17+4 )
Pls suggest code to generate matrix B
0 Commenti
Risposta accettata
Walter Roberson
il 4 Set 2021
A = [25 21 ]
Repeat = [4 2]
Proportion = [8 17]
leftover = A - Proportion .* (Repeat-1);
toRepeat = reshape([Proportion; leftover],1,[]);
repeatCount = reshape([Repeat-1; ones(1,length(Repeat))],1,[]);
B = repelem(toRepeat, repeatCount)
2 Commenti
Walter Roberson
il 4 Set 2021
The code already handles that.
A = [25 21 30]
Repeat = [4 2 1]
Proportion = [8 17 30]
leftover = A - Proportion .* (Repeat-1);
toRepeat = reshape([Proportion; leftover],1,[]);
repeatCount = reshape([Repeat-1; ones(1,length(Repeat))],1,[]);
B = repelem(toRepeat, repeatCount)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!