结构体数组赋值
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
循环将导入的值迭代分配给字段。
我有一个名为 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
循环将导入的值迭代分配给字段。