使用 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}]);

运行以上代码将输出每名学生的平均分、最高分及其对应学号,以及最大平均分及其对应学号。

代码解释

  1. 生成数据: 代码使用 cell(10, 4) 创建一个 10 行 4 列的元胞数组 data,并用第一行设置表头。循环生成每个学生的班级、姓名、学号和随机分数,并存储在元胞数组中。
  2. 计算平均分: 使用 cell2mat 将分数列转换为矩阵,然后使用 mean 函数计算每名学生的平均分。
  3. 查找最高分和最大平均分: 使用 max 函数分别找出分数矩阵和平均分向量中的最大值及其索引。
  4. 显示结果: 使用 disp 函数输出计算结果。

总结

本教程演示了如何使用 MATLAB 元胞数组生成学生数据、计算平均分并找出最高分和最大平均分。代码结构清晰,易于理解和修改,可以作为处理学生数据和其他类似数据的参考。


原文地址: https://www.cveoy.top/t/topic/m9a 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录