【问题标题】:How to run matlab from the command line and print to the command line?如何从命令行运行matlab并打印到命令行?
【发布时间】:2018-03-09 05:32:12
【问题描述】:

我想在 windows dos 终端上运行一个脚本,该脚本将向我执行此操作的终端显示“Hello world”,例如

matlab.exe -nosplash -nodesktop -nojvm -wait -r printToCommandLine.m

printToCommandLine.m 包含的地方:

system(sprintf('echo Hello world'));

但它只打印到执行脚本时生成的 matlab 命令窗口

【问题讨论】:

  • 我认为 Windows 不支持这种行为。见here
  • 嗯.. 有什么方法可以通知命令行吗?我基本上有一个很长的 Matlab 脚本,我想在某个过程完成时显示,例如“流程 A 完成……”
  • 备选方案 1:安装 Linux。备选方案 2:使用八度。抱歉,我没有更好的消息要告诉你。
  • @kkawabat 将对 Matlab 的调用包装在它自己的可执行文件中,该可执行文件在完成时打印一个字符串?
  • @AnonSubmitter85 我想在 Matlab 文件的中间打印一个字符串,因为它是一个脚本,但在脚本中有多个部分。我可以将这些流程分成不同的脚本并将它们包装起来,但这对我来说会很困难。

标签: matlab command-line-interface


【解决方案1】:

首先,我不舒尔,如果语法发生了变化,但我必须调用没有文件扩展名'.m'的脚本:

matlab.exe -nosplash -nodesktop -nojvm -wait -r printToCommandLine

否则我会在 MATLAB 中出错。

第二,这只是一种解决方法,但您可以将当前命令行输出打印到日志文件,例如'log.txt' 使用

matlab.exe -nosplash -nodesktop -nojvm -wait -logfile "log.txt" -r printToCommandLine

日志文件将在运行时更新。为了测试这一点,我创建了一个小示例脚本并查看了“log.txt”在执行过程中的变化:

disp('Script execution started. Waiting 10 seconds...')
pause(10)
disp('...waited 10 seconds.');

这不是您想要的,但它让您有机会在执行期间(在文本文件中)获取有关当前命令行输出的实际信息。

我们将其用于自动化(远程)测试,以将我们的 MATLAB 命令行输出打印到控制台测试通过

type log.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2010-10-29
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多