Как вызвать MATLAB из командной строки и распечатать на стандартный вывод перед выходом - PullRequest
11 голосов
/ 06 января 2011

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

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

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

* примечание: в настоящее время я использую 64-битную версию 7.10.0.499 (R2010a) (maci64)

1 Ответ

8 голосов
/ 07 января 2011

Как было показано в этой связанной публикации , вы можете использовать опцию -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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...