【发布时间】:2015-05-10 22:28:14
【问题描述】:
我正在尝试直接在 CMD 上而不是在 MATLAB 的终端上运行 .m 文件,但我开始相信在 Windows 上没有办法这样做。我发现了类似的东西,但仍然不是我需要的:
matlab -nodisplay -nosplash -nodesktop -r "run whatever.m"
它会启动一个新屏幕,除了 MATLAB 自己的终端之外什么都没有,而不是像 R、mySQL 和其他程序那样只在 CMD 上运行代码。
实际上我想要实现的是在 Java 上运行一些 MATLAB 的代码。我知道有一种方法可以从 .m 文件中创建 .jar、.dll、.exe 等,但我需要以其他方式进行。我的想法是获得 MATLAB 在 CMD 上抛出的结果,但它只是启动 MATLAB,运行代码,而我在使用 ProcessBuilder 的 java 上没有得到任何结果。这会读取控制台上会出现的任何内容,但由于它是 MATLAB 的控制台,因此不可能得到任何结果。这就是为什么我需要一种直接在 CMD 上运行它的方法。
【问题讨论】:
-
那么你的问题是如何让Matlab将M文件的结果输出返回到命令行然后退出?
-
您的请求会导致一种简化的进程间通信,而无需使用琐碎/常见的 O/S i/o 重定向。有一些方法可以通过类似于 ZeroMQ 允许的智能消息传递来实现这一点。此外,还有一些类似 Python-MATLAB-bridge 的项目,它们从 ZeroMQ 中受益,并准确地添加了您搜索的内容。