MATLAB 元胞数组:生成学生数据、计算平均分、查找最高分和最大平均分
使用 MATLAB 元胞数组生成学生数据、计算平均分、查找最高分和最大平均分
本教程将使用 MATLAB 元胞数组生成 10 行 4 列学生数据,包括班级、姓名、学号和三科分数。代码将计算每名学生的平均分,并找出最高分、最大平均分以及对应学号。
代码实现
% 生成数据
data = cell(10, 4);
data(1, :) = {'班级', '姓名', '学号', '分数'};
for i = 2:10
data(i, 1) = {'A' + mod(i-2, 3)}; % 班级
data(i, 2) = {['学生' num2str(i-1)]}; % 姓名
data(i, 3) = {num2str(1000 + i-1)}; % 学号
data(i, 4) = {randi([50, 100], 1, 3)}; % 分数
end
% 计算每名学生的平均分
scores = cell2mat(data(2:end, 4));
averages = mean(scores, 2);
% 找出最高分及最大平均分学号
[maxScore, maxIdx] = max(scores(:));
[maxAvg, maxAvgIdx] = max(averages);
% 显示结果
disp('每名学生的平均分:');
disp(averages);
disp(['最高分:' num2str(maxScore) ', 学号:' data{maxIdx+1, 3}]);
disp(['最大平均分:' num2str(maxAvg) ', 学号:' data{maxAvgIdx+1, 3}]);
运行以上代码将输出每名学生的平均分、最高分及其对应学号,以及最大平均分及其对应学号。
代码解释
- 生成数据: 代码使用
cell(10, 4)创建一个 10 行 4 列的元胞数组data,并用第一行设置表头。循环生成每个学生的班级、姓名、学号和随机分数,并存储在元胞数组中。 - 计算平均分: 使用
cell2mat将分数列转换为矩阵,然后使用mean函数计算每名学生的平均分。 - 查找最高分和最大平均分: 使用
max函数分别找出分数矩阵和平均分向量中的最大值及其索引。 - 显示结果: 使用
disp函数输出计算结果。
总结
本教程演示了如何使用 MATLAB 元胞数组生成学生数据、计算平均分并找出最高分和最大平均分。代码结构清晰,易于理解和修改,可以作为处理学生数据和其他类似数据的参考。
原文地址: https://www.cveoy.top/t/topic/m9a 著作权归作者所有。请勿转载和采集!