2

forループやCELLFUNを使用せずに、次の2つの構造を組み合わせる簡単な方法はありますか?

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の別の構造体を介して更新構造体の提案を使用して必要なものを取得しました。

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

この記事と、Mathworksの関連するMATLABExchangeスクリプトについて考えてみます。

件名

2つの構造を連結またはマージするにはどうすればよいですか?問題の説明:

2つの構造をマージして、2つの元の構造のすべてのフィールドを含む新しい構造にしたいと思います。これをMATLABで行うにはどうすればよいですか?

解決策

構造を連結するために使用できるMATLABの直接的な機能はありません。

添付ファイルmergeStructs.mは、MATLABで構造をマージするために使用できるいくつかのメソッドを示しています。

使用できるMATLABCentralUserCommunityのオンライン提出もあります。そのような提出の1つは:

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

MathWorksは、これらの提出物の使用または内容を保証または保証しないことに注意してください。質問、問題、または苦情は、寄稿者に送信する必要があります。

于 2013-03-17T06:04:54.323 に答える