annotate copyWithDefault.m @ 569:f1a01a48779c feature/grids/laplace_refactor

Close branch feature/grids/laplace_refactor
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 01 Sep 2017 10:58:07 +0200
parents 499653b553b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
240
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % Copy the struct src to dest with default values from default
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 % dest = copyWithDefault(src, default)
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 function dest = copyWithDefault(src, default)
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 % src does not have a value => use default
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 if isempty(src)
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 dest = default;
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 return
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 end
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 % src has a value and is not a struct => use src
304
499653b553b8 copyWithDefault: fixed bug.
Jonatan Werpers <jonatan@werpers.com>
parents: 240
diff changeset
11 % src has a value and default is not a struct => use src
499653b553b8 copyWithDefault: fixed bug.
Jonatan Werpers <jonatan@werpers.com>
parents: 240
diff changeset
12 if ~isstruct(src) || ~isstruct(default)
240
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 dest = src;
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 return
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 % src has a value and is a struct => add all default fields
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 dest = src;
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 fn = fieldnames(default);
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 for i = 1:length(fn)
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 if isfield(src, fn{i})
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 srcField = src.(fn{i});
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 else
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 srcField = [];
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 end
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 dest.(fn{i}) = copyWithDefault(srcField, default.(fn{i}));
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 end
46256fffa329 Added some stuff for default structs. Improved interface for beam.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 end