7

Matlab では、セル配列を構造体配列フィールドに割り当てることfooが可能です。

my_array(1000).foo = [];
[my_array.foo] = some_cell{:};

今私がやりたいことは、配列内のすべてのフィールドに単一の値を割り当てることです。しかし、私が試したものは何でも、Matlab は、 size の単一の要素を割り当てたい場合は、すべてのフィールド[1x1]に割り当てる必要があると黙って想定するのではなく、エラー メッセージを返します。たとえば、次のように簡単に言うことができれば幸いです。

my_array.foo = pi;
??? Incorrect number of right hand side elements in dot name assignment.
Missing [] around left hand side is a likely cause.

では、構造体配列全体のフィールドに単一の値を割り当てるにはどうすればよいでしょうか?

4

1 に答える 1

13

dealこの問題を解決するために使用できます。

my_array(1000).foo = [];
[my_array.foo] =deal(pi);

ただし、カンマ区切りのリストを一時的にmy_array.fooベクトルに変換するには、2 行目の の角括弧が必要であることに注意してください。

于 2012-10-09T08:33:10.033 に答える