编写一个求学生成绩平均数,方差的函数并将学生根据成绩分类成及格,优秀等五个等级的matlab程序要求具有循环和分支和自定义函数的调用
时间: 2024-02-23 08:03:22 浏览: 68
好的,以下是您所需的matlab函数程序:
```matlab
function [average, variance, level] = score_analysis(scores)
% 计算学生成绩平均数和方差,并根据成绩将学生分类成及格、优秀等五个等级
% scores: 学生成绩向量
% average: 平均数
% variance: 方差
% level: 学生成绩等级向量,其中1表示不及格,2表示及格,3表示中等,4表示良好,5表示优秀
% 计算平均数
average = mean(scores);
% 计算方差
variance = var(scores);
% 将成绩分成五个等级
level = zeros(size(scores));
for i = 1:length(scores)
if scores(i) < 60
level(i) = 1;
elseif scores(i) >= 60 && scores(i) < 70
level(i) = 2;
elseif scores(i) >= 70 && scores(i) < 80
level(i) = 3;
elseif scores(i) >= 80 && scores(i) < 90
level(i) = 4;
else
level(i) = 5;
end
end
```
另外,您需要在同一目录下创建一个名为`score_analysis_test.m`的测试脚本,用于测试上述函数的正确性:
```matlab
% 测试score_analysis函数
% 生成随机成绩
scores = randi([50 100], 1, 30);
% 调用score_analysis函数
[average, variance, level] = score_analysis(scores);
% 输出结果
fprintf('平均数为:%.2f\n', average);
fprintf('方差为:%.2f\n', variance);
fprintf('学生成绩等级为:\n');
fprintf('不及格: %d\n', sum(level == 1));
fprintf('及格: %d\n', sum(level == 2));
fprintf('中等: %d\n', sum(level == 3));
fprintf('良好: %d\n', sum(level == 4));
fprintf('优秀: %d\n', sum(level == 5));
```
您可以在Matlab命令行中运行`score_analysis_test`来测试程序的正确性。
阅读全文