samer@4: function varargout=promote(varargin) samer@4: % promote - repmats all args to be the same size samer@4: % samer@4: % promote :: var {I:[N]->[[Size(I)]->A]} ~'variable argument list of arrays' samer@4: % -> var {I:[[N]]->[[MSize]->A]} ~'all arrays of same size'. samer@4: % samer@4: % Target size is the maximum along each dimensions of all the input sizes. samer@4: samer@4: maxdims=max(cellcat(1,cellmap(@numdims,varargin))); samer@4: target=max(cellcat(1,cellmap(@(x)pad1s(maxdims,size1(x)),varargin)),[],1); samer@4: varargout=cellmap(@(x)repmat_to(x,tosize(target)),varargin); samer@4: samer@4: samer@4: