在没有图形环境的Linux下运行Matlab?

Lei*_*Lei 12 linux ssh matlab command-line

我将使用SSH在远程Linux服务器上运行Matlab程序.我想知道如何在Linux中运行Matlab只使用命令行,这意味着没有图形环境?

谢谢.

H.M*_*ter 20

使用以下标志启动MatLab

matlab -nodesktop -nojvm -nosplash
Run Code Online (Sandbox Code Playgroud)
  • -nodesktop 防止桌面

  • -nojvm 阻止启动java虚拟机

  • -nosplash 防止启动启动画面.

请注意,正如Li-aung Yip在评论中指出的那样,Mathworks不建议使用该-nojvm标志.

  • 我用Google搜索 `-nodesktop`和`-nojvm`略有不同.[以下是The Mathworks的Michael Katz的解释.](http://blogs.mathworks.com/community/2010/02/22/launching-matlab-without-the-desktop/) (2认同)

Evg*_*eev 5

matlab -nodisplay
Run Code Online (Sandbox Code Playgroud)

请参阅此处-nodisplay

然后-nodesktop-nosplash都是不必要的。在文本模式下,它们没有意义。

-nojvm除非您有其他单独的理由要添加,否则添加它可能不是一个好主意。没有JVM,您将失去一些功能,这些功能的缺乏可能会在以后导致混乱。来源:与上述相同的链接。最重要的是-nodisplay,它不会使非图形Matlab会话的图形化程度降低。


这有两种非交互方式运行命令的方法。

方法1:

matlab -nodisplay < myScript.m
Run Code Online (Sandbox Code Playgroud)

exit作为例如在最后的命令myScript.m

方式2:

matlab -nodisplay -r "try, myFunction(); catch e, disp(getReport(e)), exit(7), end, exit()" 
Run Code Online (Sandbox Code Playgroud)

第二种方法更可取,因为例如,如果代码中间出现错误,则第二种方法将打印错误消息并以非零代码退出。而第一种方法等效于直接键入命令,而不管Matlab怎么说(可能是错误消息)。

如果下一个问题是“如何在文本模式的Matlab中抑制欢迎消息?”,似乎没有摆脱它的好方法

  • 从 R2019a 开始,有一个“-batch”选项专门用于以非交互方式运行脚本。它避免了“-r”(需要 try/catch 和 exit 语句)的所有问题,并且还抑制了横幅。自该版本以来,不再推荐使用“-r”。 (2认同)