function in = FillEmptyFields(in,filling)
% in = FillEmptyFields(in,filling)
%
% If input is a struct (-array):
% Fills all empty fields in IN with FILLING
% Also operates on N-D struct arrays
%
% If input is a cell (-array):
% Fills all empty elements in IN with FILLING
%
% DN    2008
% DN    2008-05-29 Shortened it
% DN    2008-05-31 added cell support
% DN    2012-06-12 fixed bug where only first element in struct array was
%                  operated on

if isstruct(in)
    for p=1:numel(in)
        qleeg   = structfun(@isempty,in(p));
        fnm     = fieldnames(in(p));
        fnms    = fnm(qleeg).';
        for q=fnms
            in(p).(q{1}) = filling;
        end
    end
elseif iscell(in)
    for p=1:numel(in)
        if isempty(in{p})
            in{p} = filling;
        end
    end
else
    error('input of type %s is not supported',class(in));
end
