samer@4: function Z=join_tr(X,Y) samer@4: % join_tr - Cartesian product of two arrays, transpose of join samer@4: % samer@4: % join_tr :: [[M,N]], [[P,L]] -> [[M+P,N*L]]. samer@4: % samer@4: % The result contains every pairing of rows from the two arguments samer@4: samer@4: %Z=[repmat(X,size(Y,1),1) kron(Y,ones(size(X,1),1))]; samer@4: samer@4: % this is probably faster (no multiplications!) samer@4: m=size(X,2); n=size(Y,2); samer@4: Z=[repmat(X,1,n); Y(:,repmat((1:n),m,1))];