我正在一个使用多种语言的项目中:
- SQL查询数据库
- Perl / Ruby,用于对数据库中的数据进行快速而脏的处理以及其他一些簿记
- Matlab面向矩阵的计算
- 各种统计语言(SAS / R / SPSS)用于处理Matlab输出
每种语言都非常适合其利基市场,并且每种语言中已经有大量的代码。现在,有很多手动操作来运行所有这些步骤,这些步骤会更好地编写脚本。我已经在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标志以启动
“自动化服务器” 。就我的目的而言,这听起来像是过分杀伤力,我想在两种平台上都能使用。
在此工作流程中,我可以使用哪些选项来自动化Matlab?
回答:
matlab -nosplash -nodesktop -r "command" 在Windows上也可以使用。是的,它打开了另一个窗口,但这不是问题。我从Tomcat服务器上的Java包装器以批处理模式运行它,没有任何问题。将所有命令放入脚本文件,不要忘记使用exit命令关闭会话,并使用-r标志。另外,您还可以找到
-noFigureWindows和
-wait参数。它可以在Windows和Unix上运行。您可以使用特定于平台的标志,如果不支持某些标志,则将忽略它们。
启动MATLAB程序(Windows平台)
还有一种用C库隐藏matlab窗口的方法。请参见
engSetVisible 。
更多&回答...