Converting nested "summary" structure to table

Hello,
I'm trying to convert a nested structure (full of table summaries) back into a table.
filled with
I have tried using Nested2tables but I don't think it will work given the single the nested structure.
Is there any way to create a table of the summary data while keeping the fieldnames from BOTH structures?
Thank you!

2 个评论

So, are you expecting a table like this?
table_name size Type ...
Days_from_development [118,1] 'double' ...
HIV [52,3] 'string' ...

请先登录,再进行评论。

 采纳的回答

Here's the loop version. There may be another way, but I didn't have any luck fighting with Matlab's tricky multiple-cell return behaviour
% create minimal test structure
mystruct.Days_from_development = struct('size',[118,1],'Type','double');
mystruct.HIV = struct('size',[52,3],'Type','string');
% get a list of all the fieldnames (i.e. substructures, i.e. names of tables)
table_names = fieldnames(mystruct);
% loop over substructures
for ind=1:length(table_names)
% get the string for each substructure's name
tmp = table_names{ind};
% dump the substructure to a table row
% by turning it into a 1xN cell array and putting the substructure string as the first cell
mytable(ind,:) = cell2table([{tmp} struct2cell(mystruct.(tmp))']);
end
% rename the table variables appropriately
mytable.Properties.VariableNames = [{'table_name'};fieldnames(mystruct.(tmp))]

2 个评论

(this method is not particularly stable. If you have fields that are not all matching substructures, it will error)
Unfortunatley I do have feilds that don't match. But this works well for everything else. Thank you!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Structures 的更多信息

产品

版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by