有没有简单的方法来组合以下两种结构,而不使用 for 循环或 CELLFUN?
struct1 =
a: {43x1 cell}
struct2 =
b: [43x1 double]
c: {43x1 cell}
我想有这样的组合结构:
struct3 =
a: {43x1 cell}
b: [43x1 double]
c: {43x1 cell}
我通过 Matlab 中的另一个结构使用 update struct中的建议得到了我想要的,如下所示:
names = [fieldnames(struct1); fieldnames(struct2)];
struct3 = cell2struct([struct2cell(struct1); struct2cell(struct2)], names, 1);
考虑这篇文章和 Mathworks 的相关 MATLAB Exchange 脚本:
主题:
如何连接或合并两个结构?问题描述:
我想将两个结构合并为一个包含两个原始结构的所有字段的新结构。如何在 MATLAB 中做到这一点?
解决方案:
MATLAB 中没有可用于连接结构的直接功能。
附件 mergeStructs.m 显示了许多可用于在 MATLAB 中合并结构的方法。
您还可以使用 MATLAB Central User Community 上的在线提交内容。一种这样的提交是:
http://www.mathworks.com/matlabcentral/fileexchange/7842
请注意,MathWorks 不保证或担保这些提交的使用或内容。任何问题、问题或投诉都应直接联系特约作者。