MATLAB: -r vs -batch when calling matlab in unix

batchheadlessMATLABunix

I am aware that matlab -r scriptName(arg1,…) is no longer recommended for non-interactive jobs on unix systems, and that I should use -batch instead (see https://se.mathworks.com/help/matlab/ref/matlablinux.html ).
However, I have been unable to find why that is better. Could someone point me in the right direction?

Best Answer

(I'm not an expert here, just a user of the -batch option) The main advantages for me of the -batch option compared to -r for non-interactive cases are:
  • it more concisely sets up the -nosplash and -nodisplay options (even on Windows)
  • removes the startup banner
  • ensures the MATLAB process exits (with an exit code) even if your statement throws an error
All told, it's just more convenient.
Related Question