-batch command line option
makes running Matlab code from the command line more reliable.
However, Matlab is not really designed to be used extensively by end users this way.
Matlab does not have a command-line parser like many other languages (scripted and compiled) do.
Python has the
module that we generally find sufficient.
In Fortran, using the
select case can make a straightforward command line parser without resorting to external packages.
Perhaps a reason for Matlab not having these features is the startup time of Matlab. While Python can complete a small program in 100 ms from the shell, Matlab takes 10-30 seconds or so depending on the number of toolboxes and the speed of the computer. GNU Octave starts up nearly as quickly as Python when Octave toolboxes are not auto-loaded. It would be nice if Matlab someday will make an actual command-line interface with fast startup time. The main use case for interactive Matlab use has long been the IDE, so perhaps command-line interactive use is a non-existent priority for Mathworks.