Convert a struct to excel file
7 views (last 30 days)
Show older comments
I have a struct

The "perSubjectScores" contains two fields

and I want to exract the data in the first one

As you can see the names are not generic, so I find it hard to extract the subject scores for all the rows of the struct "scores"
What is the best solution to do it.
1 Comment
Answers (1)
Jan
on 6 Jul 2018
What about a simple loop?
Result = cell(numel(scores), 2);
for k = 1:numel(scores)
F = scores(k).perSubjectScores.perSubjectRestrospectiveZScored;
Result{k, 1} = fieldnames(F);
Result{k, 2} = cell2mat(struct2cell(F));
end
Afterwards a call to cat(1, Result{:,1}) should create a list of all subject names. Unfortunately I'm not really sure, if this works correctly, because I cannot follow the description of your data structure completely. But the general method should get clear and I hope you can adjust it to your needs.
I strongly recommend to simplify the naming scheme. It does not increase the clarity to mention in each level of the nested struct, that the value concern a "scoring". Too exhaustive names for variables or fields decrease the readability and increase the chance of confusion and typos.
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!