Why won't my function display any of the required text?
11 次查看(过去 30 天)
显示 更早的评论
The function / script runs completely fine except for the fact that it won't print any of the disp(....) text form inside the function. If I remove the function start and end block and rerun it as a normal script it runs the entire thing perfectly and outputs everything I need it to.
Any ideas what I have done wrong?
function FinalGrade
FinalGrade = FinalMark;
PartBAvg = (sum(Results{1:6,7})/6);
PartCAvg = (sum(Results{7:18,7})/12);
FinalMark = ((PartBAvg*0.33)+(PartCAvg*0.66))
if (FinalMark >= 0) && (FinalMark <= 100)
disp ('Check Complete, all Results are within reasonable parameters')
else
disp ('Error in calculation. Check Data source')
end
if (FinalMark >= 70)
disp ('First Class Degree')
elseif (60 <= FinalMark) && (FinalMark < 70)
disp ('Upper Second Class Degree')
elseif (50 <= FinalMark) && (FinalMark < 60)
disp ('Lower Second Class Degree')
elseif (40<= FinalMark) && (FinalMark < 50)
disp ('Third Class Degree')
else
disp ('Fail')
end
0 个评论
采纳的回答
VBBV
2024-3-12
%FinalGrade = FinalMark;
7 个评论
VBBV
2024-3-12
编辑:VBBV
2024-3-12
@Thomas Brown, thats because you are not passing any input to the function FinaGrade. See the below format of the function.
function FinalMark = FinalGrade(Results)
% <-----> input variable data
end
Also note i have used Results as numeric array whereas you have cell arrays since you import data using readtable. So change the ( ) to { } for Results inside the function
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!