Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows上的脚本中调用Matlab?_Windows_Matlab_Scripting_Automation - Fatal编程技术网

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

如何在Windows上的脚本中调用Matlab?,windows,matlab,scripting,automation,Windows,Matlab,Scripting,Automation,我正在从事一个使用多种语言的项目: 用于查询数据库的SQL Perl/Ruby用于快速、脏处理来自数据库的数据和一些其他簿记 面向矩阵计算的Matlab 用于处理Matlab输出的各种统计语言(SAS/R/SPSS) 每种语言都很适合自己的领域,我们在每种语言中都有相当数量的代码。现在,要运行所有这些步骤需要大量的手工工作,而这些步骤的脚本编写会更好。我已经在Linux上完成了这项工作,并且它运行得比较好 在Linux上: matlab -nosplash -nodesktop -r "co

我正在从事一个使用多种语言的项目:

  • 用于查询数据库的SQL
  • Perl/Ruby用于快速、脏处理来自数据库的数据和一些其他簿记
  • 面向矩阵计算的Matlab
  • 用于处理Matlab输出的各种统计语言(SAS/R/SPSS)
每种语言都很适合自己的领域,我们在每种语言中都有相当数量的代码。现在,要运行所有这些步骤需要大量的手工工作,而这些步骤的脚本编写会更好。我已经在Linux上完成了这项工作,并且它运行得比较好

在Linux上:

matlab -nosplash -nodesktop -r "command"

…以“命令行”模式打开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标志。您还可以找到有用的-nofigureWidows-wait参数。它可以在Windows和Unix上运行。您可以使用特定于平台的标志,如果不支持某些标志,它们将被忽略


还有一种使用C库隐藏matlab窗口的方法。请参阅。

Hrm。。。也许我遗漏了什么。我得在Windows上再检查一遍。谢谢你的帮助!
matlab -nosplash -nodesktop -r "command"