MATLAB Answers

Change table of structs into columns of data in a table

7 views (last 30 days)
I have many tables which contain anywhere from 2000 - 7500 1x1 structs in one column. Each struct contains a value for x, y and z positions. I need to extract these 3 numbers from each struct and have them in their own columns (as just regular floats). The end result will be a table with a column for x values, a column for y values, and a column for z values.
I've attached an example file (.mat).
What is an efficient way to do this?


Sign in to comment.

Accepted Answer

Mohammad Sami
Mohammad Sami on 8 Sep 2020
Based on your example data this will work. All structs must have the exact same fields, otherwise this will fail
flattened = struct2table(vertcat(data{:,1}));

  1 Comment

Lilly Aurelius
Lilly Aurelius on 9 Sep 2020
Thank you this worked perfectly. I just had to change it to
flattened = struct2table(vertcat(data.dog1_pos(:,1)));
since it wasnt a cell array. Cheers

Sign in to comment.

More Answers (0)




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!