如何在Matlab中简单地连接两个具有不同字段的结构?

时间:2013-03-17 01:22:22

标签: matlab struct

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

struct1 = 

    a: {43x1 cell}

struct2 = 

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

我希望得到这样的组合结构:

struct3 = 

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

2 个答案:

答案 0 :(得分:5)

我使用update struct via another struct in Matlab中的建议得到了我想要的内容,如下所示:

names = [fieldnames(struct1); fieldnames(struct2)];
struct3 = cell2struct([struct2cell(struct1); struct2cell(struct2)], names, 1);

答案 1 :(得分:0)

从Mathworks考虑this article and associated MATLAB Exchange script

  

<强>主题

     

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

     

我想将两个结构合并到一个包含的新结构中   两个原始结构的所有领域。我怎么能这样做   MATLAB?

     

<强>解决方案

     

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

     

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

     

MATLAB中心用户社区也有在线提交   你可以使用。其中一个提交是:

     

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

     

请注意,MathWorks不保证或保证使用或内容   这些意见书。任何问题,问题或投诉都应该是   导致撰稿人。