function C = csxfun(fhandle,x,y,varargin)
% Apply element-by-element binary operation to two cell arrays with
% singleton expansion enabled (very similiar to MATLAB builtin bsxfun).
% Additionally, csxfun can be called with the optional parameters
% 'UniformOutput' and/or 'ErrorHandler' (see cellfun documentation).
%
% Note: To inline csxfun --
% csxfun = @(fhandle,C1,C2,varargin)cellfun(...
% @(C1,C2)fhandle(C1,C2),...
% C1,C2,...
% varargin...
% );
%
% Examples:
%
% A = csxfun(@plus,{1,2,3},{3,2,1})
% A =
% 4 4 4
%
% B = csxfun(@plus,{1,2,3},{3,2,1},'UniformOutput',false)
% B =
% [4] [4] [4]
C = cellfun(...
@(x,y)fhandle(x,y),x,y,varargin{:}...
);