Acces data in nested structure
15 views (last 30 days)
I have a structure like this:
S.various_substructures.value1.x and S.various_substructures.value1.y
various_substructures are structures of varying fieldnames while the following substructures have the same names. The last structure contains arrays x and y.
I tried it with arrayfun without succes. Any idea to acces the data without a loop?
Stephen23 on 4 Jun 2019
Edited: Stephen23 on 4 Jun 2019
"Any idea to acces the data without a loop?"
You can either use an explicit for loop or an implicit loop using arrayfun or structfun:
>> S.A.value1.x = 1;
>> S.A.value1.y = 11;
>> S.B.value1.x = 2;
>> S.B.value1.y = 22;
>> S.C.value1.x = 3;
>> S.C.value1.y = 33;
>> X = structfun(@(s)s.value1.x,S)
>> Y = structfun(@(s)s.value1.y,S)
More Answers (2)
Sayyed Ahmad on 4 Jun 2019
if your various_substructures is an array you can access the value like follow:
Raghunandan V on 4 Jun 2019
You can treat the variable name as string.
- First you should store all the various_subStructures in an array(or cell) in form of string.
- Make a loop and get the name of the variables that you want in string format.
- Then convert the name in the form of string to variable name using commands like genvarname and eval like this