Сведения о вопросе

DUNKER

00:19, 29th August, 2020

Теги

command-line   matlab    

Как я могу остановить MATLAB от возврата до завершения работы скрипта командной строки?

Просмотров: 450   Ответов: 1

Я вижу в справке MATLAB (matlab -h), что могу использовать флаг -r для указания m-файла для запуска. Я замечаю, что когда я делаю это, MATLAB, кажется, начинает сценарий,но сразу же возвращается. Скрипт работает нормально, но главное приложение уже вернулось.

Есть ли какой-либо способ заставить MATLAB вернуться только после завершения команды? Если вы вызываете его из отдельной программы, кажется, что проще дождаться процесса,чем использовать файл или сокеты для подтверждения завершения.

Для иллюстрации приведем пример функции waitHello.m :

function waitHello
    disp('Waiting...');
    pause(3); %pauses 3 seconds
    disp('Hello World');
    quit;

И я пытаюсь запустить это с помощью:

matlab -nosplash -nodesktop -r waitHello



  Сведения об ответе

screen

05:17, 16th August, 2020

Быстрый ответ:

matlab -wait -nosplash -nodesktop -r waitHello

В Matlab 7.1 (версия у меня есть) есть недокументированная опция командной строки-ждать в matlab.bat. Если он не работает для вашей версии, вы, вероятно, можете добавить его. Вот что я нашел. Команда внизу, которая наконец запускает matlab, является (строка 153):

start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%\%MATLAB_ARCH%\matlab" %MATLAB_ARGS%

Соответствующий синтаксис команды start (см. "help start" в cmd.exe) в этом случае является:

start ["window title"] [/wait] myprogram.exe args ...

Чуть выше, среди всех документированных параметров командной строки, я нашел (строка 60):

) else if (%opt%) == (-wait) (
  set START_WAIT=/wait
) else (

Поэтому указание-wait должно делать то, что вы хотите, пока вы также выходите из matlab из вашего скрипта (в противном случае он будет ждать, пока вы завершите его интерактивно).


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться