Making one structure out of two structures
1 次查看(过去 30 天)
显示 更早的评论
Let's say I have two structures.
D = [strtrim(C{1}),num2cell(C{2})].';
F = struct(D{:});
% other code that creates C1
D1 = [strtrim(C1{1}),num2cell(C1{2})].'; \
E = struct(D1{:});
I now want to create a larger structure out of F and E that has the same dimensions.
So , for dummy variables, let's say F looks like (but is not limited to):
A: apple
B: ball
and E looks like:
C: cat
D: dog
How do I combine these two into:
A: apple
B: ball
C: cat
D: dog
Thanks!
1 个评论
Stephen23
2018-11-27
Note that you could also use cell2struct to create those structures, which avoids having to create the intermediate cell arrays.
采纳的回答
Stephen23
2018-11-27
编辑:Stephen23
2018-11-27
A general solution for two identically-sized structures, with any number of fields:
>> F.A = 'apple';
>> F.B = 'ball';
>> E.C = 'cat';
>> E.D = 'dog';
>> Z = cell2struct([struct2cell(E);struct2cell(F)], [fieldnames(E);fieldnames(F)], 1)
Z =
C = cat
D = dog
A = apple
B = ball
更多回答(1 个)
Walter Roberson
2018-11-27
Either loop setting field by field or else use struct2cell on both and combine into one cell and cell2struct back into struct.
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!