Repetition of elements in a matrix
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
采纳的回答
  Walter Roberson
      
      
 2021-9-4
        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 个评论
  Walter Roberson
      
      
 2021-9-4
				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)
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
