How to create table from struct array
8 次查看(过去 30 天)
显示 更早的评论
I would like to create table from imported json table.
The data imported are arranged in struct array, So I ould like to create table by combining fields and value in one table. 

0 个评论
采纳的回答
Stephen23
2021-4-27
编辑:Stephen23
2021-4-27
Note that mixing up meta-data (the date) into fieldnames forces superfluous nesting of structures. This poor data design has already allowed one bug into your data: dates with/without leading zeros has allowed duplicates, e.g. for 2021 both of "Apr1" and "Apr01" are listed, as are both of "Apr2" and "Apr02", and as are both of "Apr4" and "Apr04".
Much better data design would store the date as data in its own right: if you have the choice, store the data in an Nx1 structure with a date field (and store the date as datetime or a datevector or anything more robust than those strings).
But given what you have described:
F1 = struct('A',11,'B',12);
F2 = struct('A',21,'B',22);
F3 = struct('A',31,'B',32);
S = struct('Mar23_2021',F1, 'Apr2_2021',F2, 'Apr10_2021',F3)
F = fieldnames(S);
D = datetime(F,'InputFormat','MMMd_yyyy');
C = struct2cell(S);
T = struct2table(vertcat(C{:}));
T.date = D
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!