Function definition not supported on cluster, but available in interactive mode

1 view (last 30 days)
When I try to run the following program
% Test program
for i=1:3600
waitawhile(1)
disp(i)
end
function waitawhile(time)
% wait time seconds
pause(time)
end
in Matlab (2020a) on a cluster in interactive mode (also with the -no-display option) and Matlab online it works perfectly, but when I submit it as a job on a cluster (srun matlab -nodisplay test.m) I get the following error
function waitawhile(time)
Error: Function definition not supported in this context. Create function in code file.
End
Error: Illigal use of reserved keyword 'end'
I am not sure why this error occurs and why Matlab should have a problem with a local function within a script. Is there a specific reason why this code does not work on the same cluster in interactive mode and not when submitted as a job?
  4 Comments
Sander Vos
Sander Vos on 29 Mar 2021
The '. m' does not have much influence on running the code. If I remove the function in the test script and replace waitawhile with pause the code runs just fine. It has more to do the infile subroutine I presume.

Sign in to comment.

Answers (1)

Baoning Wu
Baoning Wu on 23 May 2023
I encounter the exact same problem. Any solution you found?

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!