【问题标题】:Assign value to the same field of every element of non-scalar struct为非标量结构的每个元素的相同字段赋值
【发布时间】:2012-10-09 08:21:46
【问题描述】:

在 Matlab 中,可以将元胞数组分配给结构数组字段 foo

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

现在我想做的是为数组中的所有字段分配一个值。但无论我尝试什么,Matlab 都会返回错误消息,而不是默默地假设如果我想分配一个大小为 [1x1] 的元素,它应该被分配给 all 字段。如果我能简单地说例如,我会很高兴:

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

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

【问题讨论】:

    标签: arrays matlab struct field assign


    【解决方案1】:

    你可以使用deal来解决这个问题:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 2015-04-17
      相关资源
      最近更新 更多