MATLAB实验,救救孩子吧,刚学,啥也不会🥺🥺

1、编写M函数文件,某班学生某门课成绩为:60、75、85、96、52、36、86、56、94、84、77,用switch结构统计90-99,80-89,70-79,60-69及60分以下各分数段的人数,并将各人成绩变为优、良、中、及格和不及格表示,统计人数和成绩变换都用子函数实现。

你好同学,这个就是判断分数所处的阶段,然后返回成绩和各个分段的人数

function [count, grade] = gradeDistribution(score)
count = zeros(1,5);%count有5个值,分别是优、良、中、及格、不及格五个的人数
nscore = numel(score);%总的人数
grade(nscore) = "";
grade = reshape(grade,size(score));
for i = 1:nscore %对每个分数段进行判断
    switch score(i)
        case num2cell(90:99)
            grade(i)="优";
            count(1) = count(1)+1;
        case num2cell(80:89)
            grade(i)="良";
            count(2) = count(2)+1;
        case num2cell(70:79)
            grade(i)="中";
            count(3) = count(3)+1;
        case num2cell(60:69)
            grade(i)="及格";
            count(4) = count(4)+1;
        case num2cell(0:59)
            grade(i)="不及格";
            count(5) = count(5)+1;
    end
end
end

调用示例:

score=[60,75,85,96,52,36,86,56,94,84,77];
[count, grade] = gradeDistribution(score)

结果显示

count =

     2     3     2     1     3


grade = 

  1×11 string 数组

    "及格"    "中"    "良"    "优"    "不及格"    "不及格"    "良"    "不及格"    "优"    "良"    "中"

可见成绩为优、良、中、及格和不及格的人数分别为 2、3 、2、1 、3人。