Problem 42859. Convert nested struct-array to numeric array
Sometimes data happens to be nicely structured in a struct-array, distributed over various levels of the struct, according to the hierarchy in the logic of the data acquisition. For fitting the data, the relevant elements of the struct-array need to be converted to a simple, multi-dimensional numeric array.
That will be your assignment.
Create a function struct2mat that takes a struct-array as an input, and returns an array, where dimensions of the output data correspond to the struc-array levels in incremental order. The first output level enters dimension 1 of the output, the 2nd dimension 2, etc.
datastruct(1).level2(1).level3(1).data = 1:4; ... datastruct(4).level2(3).level3(2).data = 4321:4324;
dataarray = struct2mat(datastruct)
should result in
dataarray(1,1,1,1) = 1; ... dataarray(1,1,1,4) = 4; ... dataarray(4,3,2,3) = 4323;
I encourage you to write a function that does not use loops to access the different struct-array levels.
Solution Stats
Problem Comments
Solution Comments
Show commentsProblem Recent Solvers6
Suggested Problems
-
Omit columns averages from a matrix
586 Solvers
-
Back to basics 21 - Matrix replicating
1531 Solvers
-
8987 Solvers
-
72 Solvers
-
478 Solvers
More from this Author31
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!