如何从命令行调用MATLAB并在退出之前打印到stdout

pap*_*bla 11 matlab command-line

我正在尝试从命令行运行MATLAB脚本,并且在让MATLAB将结果返回到stdout时遇到问题.

运行以下命令时,MATLAB打印许可证标题并退出而不打印消息.

matlab -nodisplay -nojvm -r "fprintf(1, 'value: %f\n', 2.0); quit;"

*注意:我目前正在运行版本7.10.0.499(R2010a)64位(maci64)

Amr*_*mro 8

如此相关帖子中所示,您可以使用该-logfile选项将所有输出的副本复制到文件中.

matlab -nodisplay -nojvm -logfile out.txt -r "fprintf(1, 'value: %f\n', 2.0); quit;"
Run Code Online (Sandbox Code Playgroud)

Windows上,使用-wait命令行选项阻止脚本的执行,直到MATLAB关闭.

Unix上,您可以使用sleep 5s5秒钟来休眠,或者使用该wait命令暂停执行,直到该过程结束:

#!/bin/sh
matlab -nodisplay -logfile out.txt -r "rand(3), quit"
wait $(ps | grep matlab | awk '{print $2}') && cat out.txt
Run Code Online (Sandbox Code Playgroud)