Converting nested "summary" structure to table

15 次查看(过去 30 天)
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 个评论
Sindar
Sindar 2020-6-25
So, are you expecting a table like this?
table_name size Type ...
Days_from_development [118,1] 'double' ...
HIV [52,3] 'string' ...

请先登录,再进行评论。

采纳的回答

Sindar
Sindar 2020-6-25
编辑:Sindar 2020-6-25
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 个评论
Sindar
Sindar 2020-6-25
(this method is not particularly stable. If you have fields that are not all matching substructures, it will error)
Flynn McGuire
Flynn McGuire 2020-6-25
Unfortunatley I do have feilds that don't match. But this works well for everything else. Thank you!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by