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

标签 windows matlab scripting automation

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

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

每种语言都能很好地适应其利基市场,而且我们在每种语言中都有相当数量的代码。现在,有很多手动工作来运行所有这些可以更好地编写脚本的步骤。我已经在 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 的选项?

最佳答案

matlab -nosplash -nodesktop -r "command"

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

Start MATLAB program (Windows platforms)

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

关于windows - 如何在 Windows 的脚本中调用 Matlab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2523910/

相关文章:

arrays - 在 Matlab 中用矩阵索引多维数组

powershell - 远程Powershell弹出消息

java - 获取有关 WiFi 网络的信息

C#:如何获取某个文件的图标?

c - 你如何将文本文件中的数据导入MATLAB来制作圆锥体?

matlab - 在 Matlab 中打开串行对象很慢

Mysql备份脚本

c# - 检测目录中的更改

windows - 如何将命令参数添加到Windows快捷方式

linux编译文件,windows运行