Matlab怎么把导入的excel成绩分等级

不是输入成绩再划分等级,是要对已经存在的数组中的数据划分等级

% 定义等级分界线
thresholdA = 80;
thresholdB = 60;

% 找出成绩大于 thresholdA 的学生
indexA = find(scores > thresholdA);
% 将这些学生的成绩设为 A
scores(indexA) = 'A';

% 找出成绩大于 thresholdB 小于等于 thresholdA 的学生
indexB = find(scores > thresholdB & scores <= thresholdA);
% 将这些学生的成绩设为 B
scores(indexB) = 'B';

% 剩余的学生的成绩设为 C
scores(setdiff(1:length(scores), [indexA; indexB])) = 'C';

望采纳。

可以使用 if 语句或 case 语句来将数据分成等级。

  • 下面是使用 if 语句的示例代码:
% 假设成绩在变量 scores 中
scores = [88 92 76 95];

% 初始化等级变量
grades = char(zeros(size(scores)));

for i = 1:length(scores)
    if scores(i) >= 90
        grades(i) = 'A';
    elseif scores(i) >= 80
        grades(i) = 'B';
    elseif scores(i) >= 70
        grades(i) = 'C';
    elseif scores(i) >= 60
        grades(i) = 'D';
    else
        grades(i) = 'F';
    end
end

% 打印成绩等级
disp(grades)
  • 使用 case 语句的示例代码如下:
% 假设成绩在变量 scores 中
scores = [88 92 76 95];

% 初始化等级变量
grades = char(zeros(size(scores)));

for i = 1:length(scores)
    switch true
        case scores(i) >= 90
            grades(i) = 'A';
        case scores(i) >= 80
            grades(i) = 'B';
        case scores(i) >= 70
            grades(i) = 'C';
        case scores(i) >= 60
            grades(i) = 'D';
        otherwise
            grades(i) = 'F';
    end
end

% 打印成绩等级
disp(grades)