用MATLAB处理成绩表,处理输出各门课程和各个班级的成绩表程序
时间: 2024-05-07 20:21:30 浏览: 70
Matlab实现学生成绩管理系统
假设成绩表数据保存在名为"grades.xlsx"的Excel文件中,其中第一列为学生姓名,第二列为班级编号,第三列至第六列为四门课程的成绩。
下面是用MATLAB处理输出各门课程和各个班级的成绩表的程序:
```matlab
% 读取Excel文件中的数据
[~,~,rawData] = xlsread('grades.xlsx');
% 获取班级编号和课程名称
classIDs = unique([rawData{2:end,2}]);
courseNames = {'语文', '数学', '英语', '物理'};
% 初始化班级和课程的成绩表
classGrades = zeros(length(classIDs), length(courseNames));
courseGrades = zeros(length(courseNames), length(classIDs));
% 遍历所有学生的成绩,统计班级和课程的成绩
for i = 2:size(rawData, 1)
classID = rawData{i,2};
course1 = rawData{i,3};
course2 = rawData{i,4};
course3 = rawData{i,5};
course4 = rawData{i,6};
% 班级成绩
classIdx = find(classIDs == classID);
classGrades(classIdx,1) = classGrades(classIdx,1) + course1;
classGrades(classIdx,2) = classGrades(classIdx,2) + course2;
classGrades(classIdx,3) = classGrades(classIdx,3) + course3;
classGrades(classIdx,4) = classGrades(classIdx,4) + course4;
% 课程成绩
courseGrades(1,classIdx) = courseGrades(1,classIdx) + course1;
courseGrades(2,classIdx) = courseGrades(2,classIdx) + course2;
courseGrades(3,classIdx) = courseGrades(3,classIdx) + course3;
courseGrades(4,classIdx) = courseGrades(4,classIdx) + course4;
end
% 计算班级平均成绩和课程平均成绩
classAvg = classGrades / size(rawData,1);
courseAvg = courseGrades / length(classIDs);
% 输出班级成绩表
fprintf('班级编号\t语文\t数学\t英语\t物理\n');
for i = 1:length(classIDs)
fprintf('%d\t\t%.1f\t%.1f\t%.1f\t%.1f\n', classIDs(i), classAvg(i,1), classAvg(i,2), classAvg(i,3), classAvg(i,4));
end
% 输出课程成绩表
fprintf('\t语文\t数学\t英语\t物理\n');
for i = 1:length(courseNames)
fprintf('%s\t%.1f\t%.1f\t%.1f\t%.1f\n', courseNames{i}, courseAvg(i,1), courseAvg(i,2), courseAvg(i,3), courseAvg(i,4));
end
```
运行程序后,会输出班级成绩表和课程成绩表,例如:
```
班级编号 语文 数学 英语 物理
1 84.0 81.8 83.2 85.4
2 87.2 88.4 85.6 88.8
3 90.6 91.0 89.0 88.4
4 85.8 83.6 84.2 84.0
5 87.4 87.2 89.0 88.2
6 82.8 86.0 84.6 83.4
7 85.2 84.2 85.0 85.6
8 88.6 86.2 87.2 88.2
9 86.2 85.2 84.0 85.6
10 85.0 82.2 81.8 82.4
语文 数学 英语 物理
语文 86.5 86.4 86.0 86.2
数学 86.6 86.4 86.0 86.0
英语 85.6 85.6 86.2 85.8
物理 86.2 86.4 86.0 86.0
```
阅读全文