Подтвердить что ты не робот

Как вызвать MATLAB из командной строки и распечатать на stdout перед выходом

Я пытаюсь запустить скрипты MATLAB из командной строки, и у меня возникают проблемы с получением MATLAB для возврата результатов в stdout.

При выполнении следующей команды MATLAB печатает баннер лицензии и выходит без печати сообщения.

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

* note: В настоящее время я запускаю версию 7.10.0.499 (R2010a) 64-разрядную (maci64)

4b9b3361

Ответ 1

Как было показано в этом сообщении, вы можете использовать опцию -logfile, чтобы сделать копию всех выходов в файл.

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

В Windows используйте параметры командной строки -wait, чтобы заблокировать выполнение вашего script до тех пор, пока MATLAB не закроется.

В Unix вы можете использовать sleep 5s для сна в течение 5 секунд или использовать wait для приостановки выполнения до завершения процесса:

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