我正在开发一个使用多种语言的项目:
每种语言都适合自己的利基,我们已经在每种语言中都有相当数量的代码。现在,有很多手动工作来运行所有这些脚本更好的步骤。我已经在Linux上完成了这项工作,而且效果相对较好。
在Linux上:
matlab -nosplash -nodesktop -r "command"
或
echo "command" | matlab -nosplash -nodesktop
...以“命令行”模式打开Matlab。 (也就是说,没有创建窗口 - 它只是从STDIN读取,执行并输出到STDOUT / STDERR。)我的问题是在Windows(XP和7)上,这个相同的代码打开一个窗口而不读取从/写入命令行。它只是茫然地盯着我,完全忽略了STDIN和STDOUT。
如何在Windows上编写运行Matlab命令的脚本?我基本上想要做的事情:
ruby database_query.rb
perl legacy_code.pl
ruby other_stuff.rb
matlab processing_step_1.m
matlab processing_step_2.m
# etc, etc.
我发现Matlab在Windows上有一个-automation
标志来启动"automation server"。这对我的目的来说听起来有些过分,我想要在两个平台上都能运作的东西。
在此工作流程中,我有哪些选项可以自动执行Matlab?
答案 0 :(得分:4)
matlab -nosplash -nodesktop -r "command"
也适用于Windows。是的,它会打开另一个窗口,但这不是问题。我在Tomcat服务器上从Java包装器以批处理模式运行它并且没有问题。将所有命令放入脚本文件中,不要忘记使用exit命令关闭会话,并使用-r标志。您还可以找到有用的 -noFigureWindows 和 -wait 参数。它适用于Windows和Unix。您可以使用特定于平台的标志,如果某些标志不受支持,则会被忽略。
Start MATLAB program (Windows platforms)
还有一种方法可以用C库隐藏matlab窗口。请参阅engSetVisible。