在Matlab中,我经常想要将数值向量中的多个值分配给结构数组的给定字段.
b = 1:3;
x(1).a = b(1);
x(2).a = b(2);
x(3).a = b(3);
Run Code Online (Sandbox Code Playgroud)
看起来应该有一种方法可以在一行中完成这项任务,但是我可以提出两条线.
c = num2cell(b);
[x.a] = c{:};
Run Code Online (Sandbox Code Playgroud)
有没有办法将数字向量转换为逗号分隔列表?我正在寻找类似的东西:
[x.a] = num2csl(b);
Run Code Online (Sandbox Code Playgroud)
请注意,我在length(x) == length(b)这里假设.
是的,你可以使用struct.如果提供单元格数组作为给定字段名称的值,MATLAB将创建struct与该字段相同的大小,并使用单元格数组中的每个元素填充struct结果数组中的对应元素.
x = struct('a', num2cell(b))
Run Code Online (Sandbox Code Playgroud)