samer@13: % interleave - interleave elements of an array samer@13: % samer@13: % interleave :: [[1,N]], [[1,M]] -> [[1,N+M]]. samer@13: % samer@13: % interleave(A,B) interleaves the elements of A and B until there are samer@13: % no elements left in one of them. The remaining elements of the other samer@13: % are then appending. samer@4: function z=interleave(x,y) samer@4: samer@4: x=x(:); samer@4: y=y(:); samer@4: samer@4: nx=length(x); samer@4: ny=length(y); samer@4: samer@4: if nx>ny samer@4: z(1:2:2*ny-1)=x(1:ny); samer@4: z(2:2:2*ny)=y; samer@4: z(2*ny+1:nx+ny)=x(ny+1:end); samer@4: else samer@4: z(1:2:2*nx-1)=x; samer@4: z(2:2:2*nx)=y(1:nx); samer@4: z(2*nx+1:nx+ny)=y(nx+1:end); samer@4: end samer@4: