如何在Windows上的脚本中调用Matlab?

我正在开发一个使用多种语言的项目:

  • 用于查询数据库的SQL
  • Perl / Ruby可以快速处理数据库中的数据和其他簿记
  • 面向matrix的计算的Matlab
  • 用于处理Matlab输出的各种统计语言(SAS / R / SPSS)

每种语言都适合自己的位置,我们已经有了相当数量的代码。 现在,有很多手动工作来运行所有这些步骤,这将是更好的脚本。 我已经在Linux上完成了这个工作,并且工作得相当好。

在Linux上:

matlab -nosplash -nodesktop -r "command" 

要么

 echo "command" | matlab -nosplash -nodesktop 

…在“命令行”模式下打开Matlab。 (也就是说,没有创build窗口 – 它只是从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标志来启动一个“自动化服务器” 。 这听起来像是为了我的目的而矫枉过正,而且我希望在两个平台上都能运行。

在这个工作stream程中,我有什么select来实现Matlab的自动化?

 matlab -nosplash -nodesktop -r "command" 

在Windows上也是如此。 是的,它打开另一个窗口,但这不是一个问题。 我从Tomcat服务器上的Java包装以批处理模式运行它,并没有问题。 把所有的命令放到一个脚本文件中,不要忘记用exit命令关闭会话,并使用-r标志。 你也可以找到-noFigureWindows-wait参数有用。 它适用于Windows和Unix。 您可以使用特定于平台的标志,如果某些标志不受支持,则会被忽略。

启动MATLAB程序(Windows平台)

还有一种方法可以隐藏C库的matlab窗口。 参见engSetVisible 。