在命令行下运行Matlab

时间:2023-03-10 04:16:46
在命令行下运行Matlab

2014-04-20 22:08:11

在命令行下执行:

matlab -help

可以得到帮助文件:

Usage:  matlab [-h|-help] | [-n | -e]
[-arch | v=variant | v=arch/variant]
[-c licensefile] [-display Xdisplay | -nodisplay]
[-nosplash] [-mwvisual visualid] [-debug] [-softwareopengl]
[-desktop | -nodesktop | -nojvm]
[-r MATLAB_command] [-logfile log]
[-Ddebugger [options]] -h|-help - Display arguments.
-n - Display final environment variables,
arguments, and other diagnostic
information. MATLAB is not run.
-e - Display ALL the environment variables and
their values to standard output. MATLAB
is not run. If the exit status is not
on return then the variables and values
may not be correct.
-arch - Start MATLAB assuming architecture arch.
v=variant - Start the version of MATLAB found
in bin/glnxa64/variant instead of bin/glnxa64.
v=arch/variant - Start the version of MATLAB found
in bin/arch/variant instead of bin/glnxa64.
-c licensefile - Set location of the license file that MATLAB
should use. It can have the form port@host or
be a colon separated list of license files.
The LM_LICENSE_FILE and MLM_LICENSE_FILE
environment variables will be ignored.
-display Xdisplay - Send X commands to X server display, Xdisplay.
-nodisplay - Do not display any X commands. The MATLAB
desktop will not be started. However, unless
-nojvm is also provided the Java virtual machine
will be started.
-nosplash - Do not display the splash screen during startup.
-mwvisual visualid - The default X visual to use for figure windows.
-debug - Provide debugging information especially for X
based problems.
-desktop - Allow the MATLAB desktop to be started by a
process without a controlling terminal. This is
usually a required command line argument when
attempting to start MATLAB from a window manager
menu or desktop icon.
-nodesktop - Do not start the MATLAB desktop. Use the current
terminal for commands. The Java virtual machine
will be started.
-singleCompThread - Limit MATLAB to a single computational thread.
By default, MATLAB makes use of the multithreading
capabilities of the computer on which it is running.
-nojvm - Shut off all Java support by not starting the
Java virtual machine. In particular the MATLAB
desktop will not be started.
-jdb [port] - Enable remote Java debugging on port (default )
-r MATLAB_command - Start MATLAB and execute the MATLAB_command.
-logfile log - Make a copy of any output to the command window
in file log. This includes all crash reports.
-Ddebugger [options] - Start debugger to debug MATLAB.
-nouserjavapath - Ignore custom javaclasspath.txt and javalibrarypath.txt files.

可以看到与图形界面相关的几个参数是:nodisplay, nosplash, nodesktop, nojvm. 它们分别代表什么含义呢?

  1. nodisplay      不显示任何X命令(X server是Linux下的图形引擎,参考:X Window System)。Matlab桌面环境不会启动,但是会启动Java virtual machine除非使用了nojvm参数;
  2. nosplash   程序启动时不显示启动画面(版权页);
  3. nodesktop  不启动桌面环境,在当前终端中执行命令,但是会启动JVM;
  4. nojvm      关闭java支持,不启动JVM,特别的,desktop也不会启动。

因为Matlab的图形环境依赖JVM,如果不启动JVM,无法执行任何和图形界面相关的命令。若不执行任何X commands,则无法执行imshow()这些函数。所以,我们如果需要在命令行下执行matlab程序,最好只添加:nodesktop nosplash两个参数。

可以在文件.bashrc中添加:

alias mrun="matlab -nodesktop -nosplash -logfile `date +%Y_%m_%d-%H_%M_%S`.log -r"

其中,logfile `date +%Y_%m_%d-%H_%M_%S`.log 将log文件输出在了以程序执行时间为文件名的log文件下。r 参数表示运行matlab命令。