7

foo在 Matlab 中,可以将单元格数组分配给 struct arrays 字段

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转换为向量是必需的。

于 2012-10-09T08:33:10.033 回答