【问题标题】:Running an m-file from commande-line and get the results/outputMatlab:从命令行运行 m 文件并获取结果/输出
【发布时间】:2013-06-24 13:54:04
【问题描述】:

我成功地从我自己的 Web 界面通过 CLI 制作了一些由 matlab 执行的脚本。但现在,我正在尝试获取我们可以从中启动的脚本的输出。

有谁知道如何获取matlab返回的值?

例如,我的脚本“A.m”是:

a = [3, 6, 9];

我想得到:

a =

     3     6     9

我的脚本“B.m”是:

a = [1 2 3 4 6 4 3 4 5]
b = a + 2
plot(b)
grid on

我想得到下面的结果 + 生成的图像:

a =

     1     2     3     4     6     4     3     4     5

b =

     3     4     5     6     8     6     5     6     7

我使用过这些以前的主题:

非常感谢!

编辑: 我这样称呼我的文件:

C:\...\matlab\bin> matlab -wait -minimize -nodesktop
 -automation -r "run('C:\...\Source2.m');exit;"

【问题讨论】:

  • 为什么不将结果保存到 mat 文件中,然后再读取结果?
  • 因为我不会自己写所有的源文件。我不确定将发布这些脚本的科学家是否会一直考虑这样做。所以,我认为获得结果是最好的方法。我会将它们显示在我的网页上。
  • 作为一名科学家,我会对您的完整解决方案非常感兴趣(从 HTML 代码、PHP 代码到 Matlab 代码)!如果你有时间写一个更广泛的问答对,比如“我如何从网络上运行 Matlab 脚本”,我认为这对社区真的很有帮助! (回答您自己的问题是可能的,甚至是鼓励的。)
  • 是的,最终目标是从网络上运行它,但为了满足更广泛软件的需求。我还有很多工作要做。这是科学家们真正需要的。
  • 您阅读过 MathWorks 的“Web 示例指南”吗? mathworks.com/help/pdf_doc/compiler/example_guide.pdf

标签: matlab web command-line-interface output


【解决方案1】:

由于我没有matlab 的副本,我无法检查此内容,但我假设如果您使用命令行界面 (CLI) 运行它,它应该将输出打印到STDOUT(即手动调用时的终端窗口) .

在这种情况下,您应该能够在调用脚本时将所有文本输出重定向到文件,而无需修改脚本本身

C:\...\matlab\bin> matlab -wait -minimize -nodesktop \
 -automation -r "run('C:\...\Source2.m');exit;" > FILEPATH

我希望这是你想要的,并且上面的灵魂对你有用(在我看来,在 Windows 上?)。

如果您不了解此解决方案,您可能想阅读“输出重定向”,它在许多情况下非常方便。

如果我把你的问题弄错了,而你知道这一切,很抱歉用基本的东西让你厌烦。

但是,当涉及到图像时,我不知道如何获得这些图像。 它们显然不会与文本输出一起发送到STDOUT。 缺少matlab 我只能猜测,但R 从CLI 调用时的标准行为是在包含所有绘图的工作目录中创建一个名为plots.pdf 的文件。 您可以在运行脚本后检查类似文件或阅读matlab 文档。

【讨论】:

  • 嗨,非常感谢您的帮助 =) 事实上,我已经知道如何重定向输出,但这给了我其他想法。 =)
  • @Charaf:如果您设法通过这些“其他想法”解决了您的问题,请不要忘记自己回答问题或在足够接近的情况下编辑我的问题。
猜你喜欢
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-27
相关资源
最近更新 更多