Repetition of elements in a matrix
5 views (last 30 days)
Show older comments
Danish Nasir
on 4 Sep 2021
Commented: Walter Roberson
on 4 Sep 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 Comments
Accepted Answer
Walter Roberson
on 4 Sep 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 Comments
Walter Roberson
on 4 Sep 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)
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!