Hi,
given a structure
s = struct("a", 1, "b", 2, "c", 3)
I would like to access a substructure of s containing only the
fields "b" and "c".
Of course, this can be done by
substruct = struct("b", s.("b"), "c", s.("c"));
or in an assignment:
[s.b, s.c] = deal(10, 20);
However, how can I do it, if I do not know beforehand, which fields
I want to
access? E.g., I would like to create a function, where a structure and
cellstring containing a list of fieldnames is given as input
arguments, and the
corresponding substructure is returned.
Of course, I can generate a command string like the above, with
sprintf and eval it:
substruct = eval(['struct (', ...
sprintf('"%s", s.("%s"),', [fields; fields]{:})(1:end-1), ...
")"]);
But is there a more elegant way to do it?
regards
Thorsten