Matlab Grade book help --drop one lowest score and assigning letter grade
9 ビュー (過去 30 日間)
古いコメントを表示
Hi I am building a gradebook that allows me to drop the lowest assignment score and only takes 10 assignment scores and adds all the test scores. I need to assign a letter grade to each student.
Here is some data

I am stuck on dropping the lowest score and assigning students to a grade in my function. if there is a better way of doing it without a function... please tell me...
function [sumarr] = grades(structure, field)
% FUNCTION GRADES accepts any cell array value and assigns a letter
% all data entered must be transposed from rows to colums please remember
% to transpose data example transposedata = data' ---> data = [FILE that
% was imported]
%DEFINE VARIABLES
% ii -- index variable
ii =0 ;
array =[];
for ii = 1:length(structure)
%build an array
array = [array structure(ii).(field)];
end
% if one grade is less than 2, drop the score.
% assign Letter grades
%sum of all grades
sumarr = sum(array);
end
3 件のコメント
採用された回答
Image Analyst
2014 年 11 月 29 日
Can you try just subtracting the min, something like
array = [structure.(field)]; % All items - no loop over ii needed.
arraySum = sum(array) - min(array);
8 件のコメント
Mohammad Abouali
2014 年 12 月 1 日
編集済み: Mohammad Abouali
2014 年 12 月 1 日
ImageAnalyst has already answered your question. Just one more note:
another way of grading without multiple if/else is this
levels=[59 69 79 89];
GradeLetter={ 'F', ...
'D', ...
'C', ...
'B', ...
'A'};
if (arraySum<0 || arraySum >100)
error('Imposible grade')
else
fprintf(' final grade : %.3f\t %s\n', ...
arraySum, ...
GradeLetter{imquantize(arraySum,levels)} )
end
This makes it easier to change the code and add more grade levels later, such as B+, B-, A+, A-
imquantize() is part of image processing though. You need to have that toolbox.
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Introduction to Installation and Licensing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!