samer@44: % le - distribute cell argument to multiple in arguments samer@44: % samer@44: % le :: (A{1:N}=>B{:}), M:natural -> (cell {A{1:M}}, A{M+1:N} -> B{:}). samer@44: % samer@53: % f<=M is a function which takes any number of arguments but where the first samer@44: % argument is assumed to be a cell array of M elements which are distributed samer@44: % to the first M arguments of f. samer@44: samer@44: function g=le(f,I) samer@44: if nargout(f)==1, g=@q1; else g=@qn; end samer@44: samer@44: function x=q1(varargin) samer@44: args1=varargin{1}; samer@44: x=f(args1{1:I},varargin{2:end}); samer@44: end samer@44: function varargout=qn(varargin) samer@44: args1=varargin{1}; samer@44: [varargout{1:nargout}]=f(args1{1:I},varargin{2:end}); samer@44: end samer@44: end