異なるフィールドを持つ別の構造体からMatlab構造体を更新する最も簡単な方法を知りたいと思います。私の言いたいことを理解するために私の例を見てください。私は、組み合わせたい異なるフィールド名を持つ2つの構造S1とS2を持っています。私はS1 = S2;
を書く場合構造体を連結する:既存のフィールドを上書きせずに構造体フィールドを更新する
S1.a = 1;
S1.b = 2;
S2.c = 3;
S2.d = 4;
S1構造が明らかにS2によって上書きされます。結果を次のコードにします:
S1.a = 1;
S1.b = 2;
S1.c = 3;
S1.d = 4;
これは簡単な方法ですか?私はS2からfieldnameを取得し、それをS1に入れるためにforループとfieldnames()
関数を使用することでそれを行うことができますが、それは本当に素敵な解決策ではありません。
Matlabのファイル交換を持っていない知っている場合、これは役立つかもしれないが、呼び出された関数[ 'catstruct'](HTTPを持っています。 com/matlabcentral/fileexchange/7842-catstruct)が必要な作業を行っているようです。多分それはヒントや完全な解決策を提供するでしょう。 – mikkola
私はここでforループを使用すると十分ではないと思います。フィールド名に何らかの構造体があり、それをプログラムで生成できる場合は、 'struct2cell'を使用することもできます。 – rst
「本当に素敵な解決策ではない」とはどういう意味ですか?なぜそれは良い解決策ではないのですか? –