command line - para - ¿Cómo puedo evitar que MATLAB regrese hasta que se complete un script de línea de comandos?
para que sirve el command window en matlab (1)
Respuesta rápida:
matlab -wait -nosplash -nodesktop -r waitHello
En Matlab 7.1 (la versión que tengo) hay una opción de línea de comando no documentada -espera en matlab.bat. Si no funciona para su versión, probablemente podría agregarla. Esto es lo que encontré. El comando en la parte inferior que finalmente lanza matlab es (línea 153):
start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%/%MATLAB_ARCH%/matlab" %MATLAB_ARGS%
La sintaxis relevante del comando de inicio (ver "inicio de ayuda" en cmd.exe) en este caso es:
start ["window title"] [/wait] myprogram.exe args ...
Un poco más alto, entre todas las opciones de línea de comandos documentadas, encontré (línea 60):
) else if (%opt%) == (-wait) (
set START_WAIT=/wait
) else (
Así que especificar -wait debería hacer lo que quieras, siempre que también salgas de matlab de tu script (de lo contrario, esperará a que termines de forma interactiva).
Veo en la ayuda de MATLAB ( matlab -h
) que puedo usar el indicador -r
para especificar un m
archivo para ejecutar. Cuando lo hago, me doy cuenta de que MATLAB parece iniciar el script, pero de inmediato vuelve. El script funciona bien, pero la aplicación principal ya ha regresado.
¿Hay alguna manera de hacer que MATLAB solo regrese una vez que el comando está terminado? Si lo llama desde un programa separado, parece que es más fácil esperar en el proceso que utilizar un archivo o zócalos para confirmar la finalización.
Para ilustrar, aquí hay una función de muestra waitHello.m
:
function waitHello
disp(''Waiting...'');
pause(3); %pauses 3 seconds
disp(''Hello World'');
quit;
Y trato de ejecutar esto usando:
matlab -nosplash -nodesktop -r waitHello