matlab题目结构体数组,求解

建立一个结构体的数组student,包括 3 个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个 3 行 10 列的数据表示 10 门课程(满分100分),且每门课程三个阶段的分数。 找到第 2 个人的分数并显示出来 2) 找到第 2 个人的每门课程 3 个阶段的平均分数并显示出来 3) 全班同学(指这 3 个学生)的 10 门课程的每门课程的平均分如何计算 出来?要求放到一个数组里。 找到这个班所有同学的姓名放到一个元胞数组里。

你好同学,代码供参考,

rng(1);
student(1).name = '赵小明'; student(1).age = 14; student(1).score = randi([1,100], 3,10);
student(2).name = '钱小红'; student(2).age = 13; student(2).score = randi([1,100], 3,10);
student(3).name = '孙小莉'; student(3).age = 15; student(3).score = randi([1,100], 3,10);
% 第二个人的分数显示出来
fprintf('第二个人的分数:\n')
disp(student(2).score)
fprintf('第二个人的每门课程 3 个阶段的平均分数:\n')
% 找到第 2 个人的每门课程 3 个阶段的平均分数并显示出来
disp(mean(student(2).score,1))
% 三个人没门课的平均分
fprintf('三个人的每门课程的平均分数:\n')
s = student(1).score;
for i = 2:numel(student)
    s = s +  student(i).score;
end
disp(mean(s,1)/3)
% 找到这个班所有同学的姓名放到一个元胞数组里
Names = {student(:).name}

结果显示如下:

第二个人的分数:
    10    54    69    76    29    45    29    68    50    15
    43    70    84    99    79    91    14    22     6    59
    96    32     2    75    11    30     2    27    58    70

第二个人的每门课程 3 个阶段的平均分数:
  列 1 至 7

  49.666666666666664  52.000000000000000  51.666666666666664  83.333333333333329  39.666666666666664  55.333333333333336  15.000000000000000

  列 8 至 10

  39.000000000000000  38.000000000000000  48.000000000000000

三个人的每门课程的平均分数:
  列 1 至 7

  43.111111111111114  34.777777777777779  51.444444444444450  64.333333333333329  40.666666666666664  53.000000000000000  44.333333333333336

  列 8 至 10

  54.444444444444450  51.222222222222221  53.333333333333336


Names =

  1×3 cell 数组

    {'赵小明'}    {'钱小红'}    {'孙小莉'}

有帮助望采纳哟