Question x1
Write a function that takes a score matrix and returns the average score for each student.
Assume that
the matrix is arranged so that each column represents an assignment and each row represents a student.
Some scores are missing; missing scores are represented by -1 in the matrix. All other scores are
between 0 and 100.
The task is complicated by the fact that we don't want to count missed assignments
as part of the average.
For example, if the score matrix is [50 75 61; 88 -1 90; -1 -1 33] then the
averages should be [62; 89; 33].
Note that the result is returned as a column vector.
The function
heading is given below.
You can assume that each student has at least one non-missing score.
For this problem, do not use vectorized code.
The only M
ATLAB
functions allowed are
size
and
length
.
function average = getAverage(score)
% Compute the average for each row of the score matrix.
% The result is a column vector.
Scores of -1 are ignored.
[nr,nc]=size(score);
for r=1:nr
rowSum= 0;
% row sum so far
nTest= 0;
% no. of tests so far
for c= 1:nc
if (score(r,c) ~= -1)
rowSum= rowSum + score(r,c);
nTest= nTest + 1;
end
end
average(r, 1)= rowSum/nTest;
end
1 of 3

This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*