"Kronecker" of varying dimensions?
    5 views (last 30 days)
  
       Show older comments
    
Hi, I have a matrix A of dimension m x n and a vector b of natural numbers with dimension m x 1. I want to obtain a matrix C of dimension (b(1)+...+b(m)) x n by vertically stacking each A(i,:) b(i) times. For example:
A=[1 2 3; 4 5 6; 7 8 9];
b=[2; 1; 4];
I want to obtain
C=[1 2 3; 1 2 3; 4 5 6; 7 8 9; 7 8 9; 7 8 9; 7 8 9];
I cannot use loops.
0 Comments
Accepted Answer
  Azzi Abdelmalek
      
      
 on 27 Nov 2013
        
      Edited: Azzi Abdelmalek
      
      
 on 27 Nov 2013
  
      A=[1 2 3; 4 5 6; 7 8 9] 
b=[2; 1; 4] 
out=cell2mat(arrayfun(@(x) repmat(A(x,:),b(x),1),(1:size(A,1))','un',0))
0 Comments
More Answers (0)
See Also
Categories
				Find more on Sparse Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
