Effacer les filtres
Effacer les filtres

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

4 vues (au cours des 30 derniers jours)
IFM
IFM le 17 Avr 2023
Commenté : IFM le 18 Avr 2023
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 commentaires
Cris LaPierre
Cris LaPierre le 17 Avr 2023
Could you share an example? How many outputs does their function create? How are they created?
IFM
IFM le 18 Avr 2023
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.

Connectez-vous pour commenter.

Réponse acceptée

Cris LaPierre
Cris LaPierre le 17 Avr 2023
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.

Plus de réponses (0)

Communautés

Plus de réponses dans  Distance Learning Community

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by