Come posso smettere di MATLAB di tornare fino a quando dopo un script da riga di comando completa?

StackOverflow https://stackoverflow.com/questions/14495

  •  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
È stato utile?

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top