annotate general/funutils/@function_handle/vertcat.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents c388f1c70669
children
rev   line source
samer@39 1 % vertcat - function combinator
samer@38 2 %
samer@39 3 % vertcat ::
samer@39 4 % (A{:} => _),
samer@39 5 % (A{:} => _),
samer@39 6 % ...
samer@38 7 % (A{:} => C{:})
samer@38 8 % -> (A{:} => C{:}).
samer@39 9 function h=vertcat(varargin)
samer@38 10 g=varargin{end};
samer@38 11 N=length(varargin)-1;
samer@38 12 fx=varargin(1:N);
samer@38 13 fns = { @q11, @q1n; @qn1, @qnn };
samer@38 14 h=fns{acount(nargin(g),1),acount(nargout(g),1)};
samer@38 15 function y=q11(x), callfx1(x); y=g(x); end
samer@38 16 function y=qn1(varargin), callfxn(varargin); y=g(varargin{:}); end
samer@38 17 function varargout=q1n(x), callfx1(x); [varargout{1:nargout}]=g(x); end
samer@38 18 function varargout=qnn(varargin), callfxn(varargin); [varargout{1:nargout}]=g(varargin{:}); end
samer@38 19
samer@38 20 function callfx1(x), for i=1:N, fx{i}(x); end; end
samer@38 21 function callfxn(args), for i=1:N, fx{i}(args{:}); end; end
samer@38 22 end