MATLAB letter grade from Excel file
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying convert the percentage grade I calulcated into letter grades and I do not know how to?
%a) Read the student's information into MATLAB using buil-in function
%readmatirx
data = readmatrix("ITEC2600_Sample_Grades.xls");
%b Create an anoymous fucntion to calculate the studet's final make
Final_Grade = @(data)max(data(:,2:3),[],2)*0.10 +data(:,4)*0.20+data(:,5)*0.20+data(:,6)*0.50;
Final= Final_Grade(data)
%c) find the letter for each grade level
2 Kommentare
Voss
am 17 Okt. 2023
Your percentage grade calculation is weighting the Project at 0.7 and the Final at 0:
Final_Grade = @(data)max(data(:,2:3),[],2)*0.10 +data(:,4)*0.20+data(:,5)*0.20+data(:,5)*0.50;
% ^ Project ^ Project again
I guess that should be Project at 0.2 and Final at 0.5:
Final_Grade = @(data)max(data(:,2:3),[],2)*0.10 +data(:,4)*0.20+data(:,5)*0.20+data(:,6)*0.50;
% ^ Final is column 6
Akzeptierte Antwort
Voss
am 17 Okt. 2023
You need to define which numeric grades map to which letter grades. For example:
letters = 'F':-1:'A';
letters(letters == 'E') = ''
thresholds = [0, 60:10:100]
Once you do that you may be able to use discretize as follows:
% read file:
data = readmatrix("ITEC2600_Sample_Grades.xls");
% calculate numeric grades:
Final_Grade = max(data(:,2:3),[],2)*0.10 +data(:,4)*0.20+data(:,5)*0.20+data(:,6)*0.50
% discretize numeric grades to indices in thresholds, then index into
% letters with those indices:
Final_Letter_Grades = letters(discretize(Final_Grade,thresholds))
2 Kommentare
Voss
am 18 Okt. 2023
Sure.
% if statements:
N = numel(Final_Grade);
Final_Letter_Grades = char(zeros(1,N));
for ii = 1:N
if Final_Grade(ii) >= 90
Final_Letter_Grades(ii) = 'A';
elseif Final_Grade(ii) >= 80
Final_Letter_Grades(ii) = 'B';
elseif % etc.
% ...
else
% ...
end
end
% switch:
N = numel(Final_Grade);
Final_Letter_Grades = char(zeros(1,N));
for ii = 1:N
switch true
case Final_Grade(ii) >= 90
Final_Letter_Grades(ii) = 'A';
case Final_Grade(ii) >= 80
Final_Letter_Grades(ii) = 'B';
case % etc.
% ...
otherwise
% ...
end
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Historical Contests finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!