In Matlab, assigning cell arrays to a struct arrays field foo
is possible with
my_array(1000).foo = [];
[my_array.foo] = some_cell{:};
Now what I would like to do is assign a single value to all fields in the array. But whatever I tried, Matlab would return error messages instead of silently assuming that if I want to assign a single element of size [1x1]
, it should be assigned to all fields. I would be happy if I could simply say e.g.:
my_array.foo = pi;
??? Incorrect number of right hand side elements in dot name assignment.
Missing [] around left hand side is a likely cause.
So, how can I assign a single value to a field all over a struct array?
You can use deal
to solve this problem:
my_array(1000).foo = [];
[my_array.foo] =deal(pi);
However, note the square brackets in the second line with are necessary to temporarily convert the comma separated list my_array.foo
into a vector.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With