Mercurial > hg > ishara
comparison general/funutils/@function_handle/or.m @ 39:c388f1c70669
Updated documentation and fixed some bugs in function algebra
author | samer |
---|---|
date | Tue, 29 Jan 2013 17:02:00 +0000 |
parents | 9d24b616bb06 |
children |
comparison
equal
deleted
inserted
replaced
38:9d24b616bb06 | 39:c388f1c70669 |
---|---|
4 % F:(A{1:N} => B{1:M}), | 4 % F:(A{1:N} => B{1:M}), |
5 % G:(A{1:N} => C{1:L}), | 5 % G:(A{1:N} => C{1:L}), |
6 % N:natural, ~'defaults to nargin(F)' | 6 % N:natural, ~'defaults to nargin(F)' |
7 % M:natural ~'defaults to nargout(F)' | 7 % M:natural ~'defaults to nargout(F)' |
8 % -> (A{1:N} => B{1:M}, C{1:L}). | 8 % -> (A{1:N} => B{1:M}, C{1:L}). |
9 function h=and(f,g,nin,nout) | 9 function h=or(f,g,nin,nout) |
10 if nargin<4, nout=nargout(f); end | 10 if nargin<4, nout=nargout(f); end |
11 if nargin<3, nin=nargin(f); end | 11 if nargin<3, nin=nargin(f); end |
12 noutg=nargout(g); | |
12 fns = { @q11, @q1n; @qn1, @qnn }; | 13 fns = { @q11, @q1n; @qn1, @qnn }; |
13 h=fns{acount(nin,1),max(acount(nargout(g),1),acount(nout,1))}; | 14 h=fns{acount(nin,1),max(acount(nargout(g),1),acount(nout,1))}; |
14 | 15 |
15 function [y,z]=q11(x), y=f(x); z=g(x); end | 16 function [y,z]=q11(x), y=f(x); z=g(x); end |
16 function [y,z]=qn1(varargin), y=f(varargin{:}); z=g(varargin{:}); end | 17 function [y,z]=qn1(varargin), y=f(varargin{:}); z=g(varargin{:}); end |
17 function varargout=q1n(x), [varargout{1:nout}]=f(x); [varargout{nout+1:nargout}]=g(x); end | 18 function varargout=q1n(x), [varargout{1:nout}]=f(x); [varargout{nout+1:nargout}]=g(x); end |
18 function varargout=qnn(varargin), | 19 function varargout=qnn(varargin), |
19 [varargin{1:nout}]=f(varargin{:}); | 20 [varargout{1:nout}]=f(varargin{:}); |
20 [varargout{1:nargout}]=g(varargin{:}); | 21 [varargout{nout+(1:noutg)}]=g(varargin{:}); |
21 end | 22 end |
22 end | 23 end |