1234567891011121314151617181920212223242526272829 |
- function [x] = spm_funfun(varargin)
- % Utility function to evaluate functionals
- % FORMAT [F] = spm_funfun({f1,x11,x12,..f2,x22,...)
- %
- % F = f ... f2(f1(x11,x12,...),x22,...)) ... )
- %
- % e.g. spm_funfun(@(x) cos(x),2.1,@(x,a) x^a,2)
- %
- % which is cos(2.1)^2
- %__________________________________________________________________________
- % Copyright (C) 2005-2013 Wellcome Trust Centre for Neuroimaging
- % Karl Friston
- % $Id: spm_funfun.m 5219 2013-01-29 17:07:07Z spm $
- % iterate over functions
- %--------------------------------------------------------------------------
- while ~isempty(varargin)
- f = varargin{1};
- n = nargin(f);
- try
- x = {x,varargin{2:n}};
- varargin = varargin(n + 1:end);
- catch
- x = varargin(2:(n + 1));
- varargin = varargin(n + 2:end);
- end
- x = feval(f,x{:});
- end
|