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

时间:2012-06-15 07:36:24

标签: linux matlab command-line ssh

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

感谢。

5 个答案:

答案 0 :(得分:20)

使用以下标志启动MatLab

matlab -nodesktop -nojvm -nosplash
  • -nodesktop会阻止桌面

  • -nojvm阻止启动java虚拟机

  • -nosplash会阻止启动启动画面。

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

答案 1 :(得分:7)

答案 2 :(得分:4)

matlab -nodisplay

请参阅here about -nodisplay

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

添加-nojvm可能不是一个好主意,除非您有充分的理由这样做。如果没有JVM,您将失去一些功能,这些功能的缺失可能会导致以后混淆。资料来源:same link as above。在-nodisplay之上,它不会使您的非图形化Matlab会话的图形化程度降低。

以下是一些以非交互方式运行命令的方法。

方式1:

matlab -nodisplay < myScript.m

exit作为例如myScript.m中的最后一个命令。

方式2:

matlab -nodisplay -r "try, myFunction(); catch e, disp(getReport(e)), exit(7), end, exit()" 

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

如果下一个问题是&#34;如何在文本模式Matlab中禁止 welcome 消息?&#34;,it seems there is NO good way to get rid of it

答案 3 :(得分:0)

将其他答案与更多错误处理放在一起,将以下内容另存为可执行文件def post(self, request): brand_form = BrandModelForm(request.POST, request.FILES) # Debug point if brand_form.is_valid(): # Step Into this file_name_errors, csv_name_errors, file_name_alphanumeric_error = self._validate_data(brand_form)

matlab-headless

现在您可以通过以下方式运行Matlab命令:

#/usr/bin/env bash

# restore the "sane" state of the terminal at the end
# otherwise interrupting the process may leave the terminal messed up
trap 'stty sane' EXIT
command="try, $1;, catch e, stack=getReport(e); fprintf(1, '%s\n', stack);, end, exit;"

# tail gets rid of the welcome message banner
matlab -nodisplay -nodesktop -nosplash -r "$command" | tail -n +11

答案 4 :(得分:0)

根据您的需要,另一种方法是:

matlab -nosplash -nodesktop -wait -log -r "Matlab Script Line 1;Matlab Script Line 2;exit;"

这与 Azure DevOps Pipeline 用于将所有 Matlab 作业输出记录到其在线 CLI 窗口的方法相同。

参考:自托管 Windows 代理

位置:C:\agent\_work\_tasks\RunMATLABCommand_28fdff80-51b4-4b6e-83e1-cfcf3f3b25a6\0.2.15\bin\run_matlab_command.bat