Come posso smettere di MATLAB di tornare fino a quando dopo un script da riga di comando completa?
-
08-06-2019 - |
Domanda
Vedo in MATLAB help (matlab -h
) che posso usare il -r
flag per specificare un m
-file per l'esecuzione.Ho notato che quando faccio questo, MATLAB sembra avviare lo script, ma tornare immediatamente.Lo script processi di multa, ma la app è già tornato.
C'è un modo per ottenere MATLAB per restituire solo una volta che il comando è finito?Se si sta chiamando da un programma separato e non mi sembra più facile per attendere che il processo di utilizzo di un file o di prese per confermare il completamento.
Per illustrare, ecco un esempio di una funzione waitHello.m
:
function waitHello
disp('Waiting...');
pause(3); %pauses 3 seconds
disp('Hello World');
quit;
E si tenta di eseguire questa operazione utilizzando:
matlab -nosplash -nodesktop -r waitHello
Soluzione
Risposta rapida:
matlab -wait -nosplash -nodesktop -r waitHello
In Matlab 7.1 (la versione che ho) c'è una non documentata opzione della riga di comando -attendere in matlab.bat.Se non funziona per la versione, probabilmente si potrebbe aggiungere in.Ecco cosa ho trovato.Il comando in fondo che lancia definitivamente matlab è (linea 153):
start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%\%MATLAB_ARCH%\matlab" %MATLAB_ARGS%
Pertinenti sintassi del comando di avvio (vedere "guida" start " in cmd.exe in questo caso è:
start ["window title"] [/wait] myprogram.exe args ...
Un po ' più in alto, tra le documentato opzioni della riga di comando, ho trovato (linea 60):
) else if (%opt%) == (-wait) (
set START_WAIT=/wait
) else (
Quindi specificando -attendere che dovrebbe fare quello che si vuole, fintanto che si sta anche uscendo matlab dal tuo script (in caso contrario vi aspetta per terminare in modo interattivo).