2

有没有简单的方法来组合以下两种结构,而不使用 for 循环或 CELLFUN?

struct1 = 

    a: {43x1 cell}

struct2 = 

    b: [43x1 double]
    c: {43x1 cell}

我想有这样的组合结构:

struct3 = 

    a: {43x1 cell}
    b: [43x1 double]
    c: {43x1 cell}
4

2 回答 2

7

我通过 Matlab 中的另一个结构使用 update struct中的建议得到了我想要的,如下所示:

names = [fieldnames(struct1); fieldnames(struct2)];
struct3 = cell2struct([struct2cell(struct1); struct2cell(struct2)], names, 1);
于 2013-03-17T12:11:30.083 回答
0

考虑这篇文章和 Mathworks 的相关 MATLAB Exchange 脚本

主题

如何连接或合并两个结构?问题描述:

我想将两个结构合并为一个包含两个原始结构的所有字段的新结构。如何在 MATLAB 中做到这一点?

解决方案

MATLAB 中没有可用于连接结构的直接功能。

附件 mergeStructs.m 显示了许多可用于在 MATLAB 中合并结构的方法。

您还可以使用 MATLAB Central User Community 上的在线提交内容。一种这样的提交是:

http://www.mathworks.com/matlabcentral/fileexchange/7842

请注意,MathWorks 不保证或担保这些提交的使用或内容。任何问题、问题或投诉都应直接联系特约作者。

于 2013-03-17T06:04:54.323 回答