function gradesRounded = roundGrade(grades)%roundGrade rounds off each element in a vector to the nearest grade in
%the 7-step scale
%
%Input grades: a vector, each element is a number between -3 and 12
%Output gradesRounded: a vector, each element is a number on the 7-step
%scale
% Start empty vector
gradesRounded = [];%Rounded grades
for i=1:length(grades) if grades(i) < -1.5 gradesRounded = -3; elseif grades(i) >= -1.5 && grades(i) < 1 gradesRounded = 0; elseif grades(i) >= 1 && grades(i) < 3 gradesRounded(i) = 2; elseif grades(i) >= 3 && grades(i) < 5.5 gradesRounded(i) = 4; elseif grades(i) >= 5.5 && grades(i) < 8.5 gradesRounded(i) = 7; elseif grades(i) >= 8.5 && grades(i) < 11 gradesRounded(i) = 10; elseif grades(i) >= 11 gradesRounded(i) = 12; endend
So far i have this code.. I have to make a function that takes in a vector with numbers between -3 and 12 and as output it should come out with a vector, where all elements are rounded to the nearest number in a scale that goes: 12 10 7 4 2 00 -3
But when i run the code, l only get one value, not a vector.. I know that the commando l can use is interp1, but isn't there a way l can solve this by using loops?
Best Answer