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
-
Make the vector [1 2 3 4 5 6 7 8 9 10]
49319 Solvers
-
Return the 3n+1 sequence for n
8270 Solvers
-
516 Solvers
-
Vectorizing, too easy or too hard?
144 Solvers
-
Find: Faster Alternatives for Large Sorted/Unique Vectors
35 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!