我有一个结构体数组,假设为
如下所示,已经有了一种解决方案。但是真的不可能像伪代码中那样用一行代码来完成这个赋值吗?
s(1).value
, ... , s(5).value
。我有一个数值向量,叫做 vals = [1 2 3 4 5]
,我想将它赋值给这个结构体数组。所以按照伪代码的写法,我希望能够实现: s(:).value = vals
。如下所示,已经有了一种解决方案。但是真的不可能像伪代码中那样用一行代码来完成这个赋值吗?
% Vector of values
vals = [1 2 3 4 5];
n = length(vals);
% Initialize struct
s(n).values = 0;
% Put vals into my struct.values
[s(1:n).values] = ???
% Known solution that i am not satisfied with:
vals_c = num2cell(vals);
[s(1:n).values] = vals_c{:};
最好的问候,乔纳斯