在MATLAB中将值分配给2D数组中的字段

时间:2018-06-20 01:37:31

标签: matlab matlab-struct

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

我有一个m×n的值数组,我正在尝试将它们分配给m×n结构中的字段。使用for循环很简单(如下所示),我只是想知道有一种更好/更有效的方法。

values = rand(4,8);

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用num2cellstruct

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

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