annotate general/funutils/@function_handle/horzcat.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@38
|
1 % horzcat - function combinator,
|
samer@38
|
2 %
|
samer@38
|
3 % horzcat ::
|
samer@39
|
4 % (A{1:N} => B{1}{:}),
|
samer@39
|
5 % (A{1:N} => B{2}{:}),
|
samer@39
|
6 % ...
|
samer@39
|
7 % -> (A{1:N} => B{1}{:}, B{2}{:}, ...).
|
samer@39
|
8 %
|
samer@39
|
9 % [f,g,h,...] is the function which calls f,g,h etc in order
|
samer@39
|
10 % with given arguments and returns all their values as multiple
|
samer@39
|
11 % return values.
|
samer@39
|
12 % eg, [a,b,c]=feval([@zeros,@ones,@eye],2)
|
samer@39
|
13 % Returns a=[0,0;0,0], b=[1,1;1,1], c=[1,0;0,1].
|
samer@39
|
14
|
samer@38
|
15 function h=horzcat(varargin)
|
samer@38
|
16 funs=varargin;
|
samer@38
|
17 nouts=cell2mat(map(@nargout,varargin));
|
samer@38
|
18 NN=sum(nouts); N=length(funs);
|
samer@38
|
19 fns = { @q1n; @qnn };
|
samer@38
|
20 h=fns{acount(nargin(funs{1}),1)};
|
samer@38
|
21
|
samer@38
|
22 function varargout=q1n(x),
|
samer@38
|
23 varargout=cell(1,NN);
|
samer@38
|
24 j=0; for i=1:N
|
samer@38
|
25 k=j+nouts(i);
|
samer@38
|
26 [varargout{j+1:k}]=funs{i}(x);
|
samer@38
|
27 j=k;
|
samer@38
|
28 end
|
samer@38
|
29 end
|
samer@38
|
30 function varargout=qnn(varargin),
|
samer@38
|
31 varargout=cell(1,NN);
|
samer@38
|
32 j=0; for i=1:N
|
samer@38
|
33 k=j+nouts(i);
|
samer@38
|
34 [varargout{j+1:k}]=funs{i}(varargin{:});
|
samer@38
|
35 j=k;
|
samer@38
|
36 end
|
samer@38
|
37 end
|
samer@38
|
38 end
|