% -*- texinfo -*- % @deftypefn {Function File} {} structfun (@var{func}, @var{s}) % @deftypefnx {Function File} {[@var{a}, @var{b}] =} structfun (@dots{}) % @deftypefnx {Function File} {} structfun (@dots{}, 'ErrorHandler', @var{errfunc}) % @deftypefnx {Function File} {} structfun (@dots{}, 'UniformOutput', @var{val}) % % Evaluate the function named @var{name} on the fields of the structure % @var{s}. The fields of @var{s} are passed to the function @var{func} % individually. % % @code{structfun} accepts an arbitrary function @var{func} in the form of % an inline function, function handle, or the name of a function (in a % character string). In the case of a character string argument, the % function must accept a single argument named @var{x}, and it must return % a string value. If the function returns more than one argument, they are % returned as separate output variables. % % If the parameter 'UniformOutput' is set to true (the default), then the function % must return a single element which will be concatenated into the % return value. If 'UniformOutput' is false, the outputs placed in a structure % with the same fieldnames as the input structure. % % @example % @group % s.name1 = 'John Smith'; % s.name2 = 'Jill Jones'; % structfun (@@(x) regexp (x, '(\w+)$', 'matches')@{1@}, s, % 'UniformOutput', false) % @end group % @end example % % Given the parameter 'ErrorHandler', then @var{errfunc} defines a function to % call in case @var{func} generates an error. The form of the function is % % @example % function [@dots{}] = errfunc (@var{se}, @dots{}) % @end example % % where there is an additional input argument to @var{errfunc} relative to % @var{func}, given by @var{se}. This is a structure with the elements % 'identifier', 'message' and 'index', giving respectively the error % identifier, the error message, and the index into the input arguments % of the element that caused the error. % @seealso{cellfun, arrayfun} % @end deftypefn