结构体数组赋值

Structure array assigning

我有一个名为 Game 的 1x5 结构数组,其中包含两个字段,即

Game(5) = struct(Points, Scorers);

现在,我还有一个元胞数组(5x2 元胞数组)(从 xlsread 导入 - 所以它都是元胞数组形式)。

pts = [1 2;3 4;5 6;7 8;9 10];

我应该如何将 pts 的每一行分别分配给 Game 中的 5 个结构?

例如:Game(3).Points 应该是 pts 的第 3 行(即 [5 6])。

Game(2).Points 应该是 [3 4]Game(1).Points 将是 [1 2].

如果您的工作表是这样组织的,即行对应于观察值,列对应于变量 - 例如points (numeric) and scorers (string) - 您可以使用以下方法将数据导入 Matlab:

[pts, scr] = xlsread(file);

然后您可以简单地将矩阵 pts 和元胞数组 scr 读入结构数组的每个字段,如:

Game = struct('Points', num2cell(pts,2), 'Scorers', scr);

这利用了 struct() 将输出维度与其输入相匹配的内置功能,避免使用 for 循环将导入的值迭代分配给字段。