Matlab向量以逗号分隔列表转换为一行

Ree*_*osa 5 matlab

在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)这里假设.

Sue*_*ver 5

是的,你可以使用struct.如果提供单元格数组作为给定字段名称的值,MATLAB将创建struct与该字段相同的大小,并使用单元格数组中的每个元素填充struct结果数组中的对应元素.

x = struct('a', num2cell(b))
Run Code Online (Sandbox Code Playgroud)

通常,无法轻松地从函数返回逗号分隔列表