6

異なるフィールドを持つ別の構造から Matlab 構造を更新する最も簡単な方法を知りたいです。私の言いたいことを理解するには、私の例を見てください。結合したいフィールド名が異なる2つの構造S1とS2があります。

S1.a = 1;
S1.b = 2;
S2.c = 3;
S2.d = 4;

私が書くS1 = S2;と、S1構造は明らかにS2によって上書きされます。結果を次のコードのようにしたい:

S1.a = 1;
S1.b = 2;
S1.c = 3;
S1.d = 4;

そうする簡単な方法はありますか?fieldnames()S2 からフィールド名を取得して S1 に配置するために、for ループと関数を使用してなんとかそれを行うことができましたが、それは実際にはきちんとした解決策ではありません。

4

2 に答える 2

2

これは、2 つの構造体に同じフィールドがないことがわかっている場合に役立ちます。

tmp = [fieldnames(S1), struct2cell(S1); fieldnames(S2), struct2cell(S2)].'; S1 = struct(tmp{:});

于 2015-11-19T07:18:00.463 に答える