How can I access a record of the Command Window using MATLAB Grader?

조회 수: 5 (최근 30일)
IFM
IFM 2023년 4월 17일
댓글: IFM 2023년 4월 18일
I have asked learners to write a function that displays some messages to the Command Window.
In MATLAB I know I can use the diary function to access a record of the Command Window text, like this:
% Start the diary
diary CommandLog
% run the learner solution here
% Access the log then assess if correct
printOuts = fileread('CommandLog')
For some reason, this comes up as empty char in MATLAB Grader. Is there an alterative?
  댓글 수: 2
Cris LaPierre
Cris LaPierre 2023년 4월 17일
Could you share an example? How many outputs does their function create? How are they created?
IFM
IFM 2023년 4월 18일
How the learners display the messages is up to them. Here are some MWE functions that might be produced by the students.
function y = myFunction(x)
fprintf('Num #1 is passed')
y=32;
end
%% Second example to show they can print out in any way
function y = myFunction2(x)
s=sprintf('check #1 passed')
disp(s)
y=64;
end
And here is what I tried in the MATLAB Grader Testing Suite (just on a function with one output for ease of testing):
diary CommandLog.out
% Run learner solution.
x = 1;
y = myFunction(x);
% Run reference solution.
yRef = reference.myFunction(x);
% Compare.
assessVariableEqual('y', yRef);
% Access "diary" to see all stuf fin Command Window.
printOuts = fileread('CommandLog.out');
whos printOuts
if isempty(printOuts)
error('Your function does not display any messages to the Command Window')
end
However the test fails regardless, even if myFunction is displaying something. "printOuts" is always empty.

댓글을 달려면 로그인하십시오.

채택된 답변

Cris LaPierre
Cris LaPierre 2023년 4월 17일
One workaround could be to write an assessment test that calls the functions using evalc. This captures the command window output in a variable you can then use for assessment.

추가 답변 (0개)

커뮤니티

더 많은 답변 보기:  원격 교육 커뮤니티

카테고리

Help CenterFile Exchange에서 Historical Contests에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by