comparison general/funutils/@function_handle/horzcat.m @ 38:9d24b616bb06

Added function algebra.
author samer
date Tue, 29 Jan 2013 15:59:01 +0000
parents
children c388f1c70669
comparison
equal deleted inserted replaced
37:beb8a3f4a345 38:9d24b616bb06
1 % horzcat - function combinator,
2 %
3 % horzcat ::
4 % F:(A{1:N} => B{1:M}),
5 % G:(A{1:N} => C{1:L}),
6 % N:natural, ~'defaults to nargin(F)'
7 % M:natural ~'defaults to nargout(F)'
8 % -> (A{1:N} => B{1:M}, C{1:L}).
9 function h=horzcat(varargin)
10 funs=varargin;
11 nouts=cell2mat(map(@nargout,varargin));
12 NN=sum(nouts); N=length(funs);
13 fns = { @q1n; @qnn };
14 h=fns{acount(nargin(funs{1}),1)};
15
16 function varargout=q1n(x),
17 varargout=cell(1,NN);
18 j=0; for i=1:N
19 k=j+nouts(i);
20 [varargout{j+1:k}]=funs{i}(x);
21 j=k;
22 end
23 end
24 function varargout=qnn(varargin),
25 varargout=cell(1,NN);
26 j=0; for i=1:N
27 k=j+nouts(i);
28 [varargout{j+1:k}]=funs{i}(varargin{:});
29 j=k;
30 end
31 end
32 end