将值分配给非标量结构的每个元素的相同字段

时间:2012-10-09 08:21:47

标签: arrays matlab struct field assign

在Matlab中,可以使用

将单元格数组分配给结构数组字段foo
my_array(1000).foo = [];
[my_array.foo] = some_cell{:};

现在我想做的是为数组中的所有字段分配一个值。但无论我尝试什么,Matlab都会返回错误消息而不是静默假设如果我想分配一个大小为[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.

那么,如何将单个值分配给整个结构数组的字段?

1 个答案:

答案 0 :(得分:13)

您可以使用deal来解决此问题:

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

但是,请注意第二行中的方括号是临时将逗号分隔列表my_array.foo转换为矢量所必需的。