File: FillEmptyFields.m

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (34 lines) | stat: -rw-r--r-- 906 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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