Converting nested "summary" structure to table
조회 수: 13 (최근 30일)
이전 댓글 표시
Hello,
I'm trying to convert a nested structure (full of table summaries) back into a table.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/321499/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/321502/image.png)
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
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
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
2020년 6월 25일
(this method is not particularly stable. If you have fields that are not all matching substructures, it will error)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!