结构数组分配

时间:2016-09-29 14:42:57

标签: arrays matlab data-structures cell-array xlsread

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

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

现在,我还有一个单元格数组(5x2单元格数组)(从xlsread导入 - 所以它全部采用单元格数组形式)。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

如果您的工作表有条理,行对应于观察,而列对应变量 - 例如点(数字)和记分员(字符串) - 您可以使用以下方法将数据导入Matlab:

[pts, scr] = xlsread(file);

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

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

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