finding mean scores of students tests compared to rest of class

2 vues (au cours des 30 derniers jours)
Rick
Rick le 18 Juin 2014
Commenté : Rick le 18 Juin 2014
Hello, I am working on this problem. To give you some context, there is an 150x10 array of test scores ranging from 1-10. sNum is the student number.
Assign to the variable curveBusters an S-by-1 array (S may be 0) of the student numbers whose average score (across all tests) was strictly higher than average score of the student indicated by sNum.
Here is my code
curveBusters = find(mean(Grades(sNum,:)) < mean(Grades(:,:)));
There was a previous problem
Assign to the variable betteredBy an S-by-1 array (S may be 0) of the student numbers that got a strictly higher score than the student indicated by sNum on the test indicated by testNum.
and this was my code that is correct
betteredBy = find((Grades(sNum,testNum) < (Grades(:,testNum))));
So I can't figure out what is wrong with my code for the means.

Réponse acceptée

Image Analyst
Image Analyst le 18 Juin 2014
I think you need to read that more carefully than you did. This is what I get. Speak up if you don't understand why I did any of the operations:
Grades = randi(10, [150, 10]) % Sample data.
% Row = student number
% Columns = grades for the student in that row.
% Assign to the variable curveBusters an S-by-1 array (S may be 0)
% of the student numbers whose average score (across all tests) was
% strictly higher than average score of the student indicated by sNum.
studentAverages = mean(Grades, 2)
studentMins = min(Grades, [], 2)
allScoresHigherThanMean = studentMins > studentAverages;
curveBusters = find(allScoresHigherThanMean)
% Assign to the variable betteredBy an S-by-1 array (S may be 0)
% of the student numbers that got a strictly higher score than
% the student indicated by sNum on the test indicated by testNum.
% Note: that is unclear since score does not refer to what score --
% it could be the mean of student 6 or all scores of student 6.
sNum = 6;
allScoresHigherThanSNum = studentMins > studentAverages(sNum);
betteredBy = find(allScoresHigherThanSNum);
  1 commentaire
Rick
Rick le 18 Juin 2014
This is what I ended up getting
curveBusters = find(mean(Grades') > mean(Grades(sNum,:)))';

Connectez-vous pour commenter.

Plus de réponses (1)

Joseph Cheng
Joseph Cheng le 18 Juin 2014
well in your curve busters equation you have the find() function looking for the students that are performing less than (<) the mean of the grades. They wouldn't be curve busting right? Those would be curve helpers.
  5 commentaires
Joseph Cheng
Joseph Cheng le 18 Juin 2014
I got confuses with the line sNum is the student number so i was thinking sNum was 1:150 not a specific student. if sNum was 1:150 which would then be which students score better than average as they would be curve busters.
is the sNum specified in the question someone in the middle of the curve?
Rick
Rick le 18 Juin 2014
sNum is a random student. In this particular case its student 6

Connectez-vous pour commenter.

Catégories

En savoir plus sur Use COM Objects in MATLAB dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by