Как вызвать MATLAB из командной строки и распечатать на стандартный вывод перед выходом
Я пытаюсь запустить сценарии MATLAB из командной строки, и у меня возникают проблемы с получением MATLAB для возврата результатов в стандартный вывод.
При выполнении следующей команды MATLAB печатает баннер лицензии и выходит без печати сообщения.
matlab -nodisplay -nojvm -r "fprintf(1, 'value: %f\n', 2.0); quit;"
* примечание: в настоящее время я использую 64-разрядную версию 7.10.0.499 (R2010a) (maci64)
1 ответ
Как было показано в этом посте, вы можете использовать -logfile
возможность сделать копию всех выводов в файл.
matlab -nodisplay -nojvm -logfile out.txt -r "fprintf(1, 'value: %f\n', 2.0); quit;"
В Windows используйте -wait
параметры командной строки, чтобы заблокировать выполнение вашего скрипта, пока 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