在 MATLAB 中为二维数组中的字段赋值

Assigning values to fields in a 2D array in MATLAB

我有一个相对简单的问题,我的 Google-fu 没有设法解决,我认为必须有一个解决方案。

我有一个 m×n 值数组,我试图将它们分配给 m×n 结构中的字段。使用 for 循环(如下所示)这很简单,我只是想知道有一种 better/more 有效的方法来做到这一点。

values = rand(4,8);

for i = 1:4
    for j = 1:8
        val_struct(i,j).a = values(i,j);
    end
end

由于我需要为很多字段执行此操作,如果我不是绝对需要的话,我有点不愿意 运行 通过一堆 for 循环。

您可以使用 num2cell and struct :

val_struct = struct('a', num2cell(values));

请注意,数值数组比 struct arrays 更有效。