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 0 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 4444) -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. 它们分别代表什么含义呢?
- nodisplay 不显示任何X命令(X server是Linux下的图形引擎,参考:X Window System)。Matlab桌面环境不会启动,但是会启动Java virtual machine除非使用了nojvm参数;
- nosplash 程序启动时不显示启动画面(版权页);
- nodesktop 不启动桌面环境,在当前终端中执行命令,但是会启动JVM;
- 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命令。