MATLAB Answers

How to extract a structure from a nested structure

8 views (last 30 days)
Blue
Blue on 5 Aug 2019
Commented: Adam Danz on 5 Aug 2019
Hello,
I have a nested structure that look like this:
% Create table
Name = {'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'}.';
Month = [1, 2, 3, 1, 2, 3, 1, 2, 3].';
Lat = [49, 50, 51, 52, 53, 54, 49, 50, 51].';
Lon = [-99, -100, -101, -102, -103, -104, -99, -100, -101,].';
A = [0.1, 0.2 , 0.3, 1.1, 0.9, 1.0, 0.1, 0.2 , 0.3,].';
T = table(Name, Month, Lat, Lon, A);
% Convert to structure
t2 = varfun(@(x){x(:)'},T,'GroupingVariables','Name');
TinStrr = t2(:,[1,3:end]);
TinStrr.Properties.VariableNames = T.Properties.VariableNames;
S_out = table2struct(TinStrr);
How can I extract the first structure (A) as a 1x1 structure ?
Thank you

  0 Comments

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 5 Aug 2019
Edited: Adam Danz on 5 Aug 2019
A = S_out(1);
...but if possible, rather than extracting it and using "A", keep the structure array together and just use "S_out(1)". This approach keeps the data more organized and the code more readable.

  2 Comments

Blue
Blue on 5 Aug 2019
Ah. That was simpler than I thought. Thank you.
Adam Danz
Adam Danz on 5 Aug 2019
Glad I could help! Consider keeping the structure array together, though. Structure arrays get really sad when you separate their members.

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!