Interagisco un piccolo script MATLAB con Python tramite il modulo subprocess
. Come segue:Python non aspetta MATLAB per terminare
cmd='(matlab -nosplash -nodesktop -r "optimizer;quit;")'
p = subprocess.Popen(cmd,stdin=None,stdout=None,shell=True)
#subprocess.Popen.wait(p)
#p.wait()
print "DONE?"
Ma "DONE" è in fase di stampa anche prima dell'inizio di MATLAB! A causa di ciò, il mio intero codice non funziona più.
ho provato:
- Utilizzando os.system() chiama (Questo è dove ho iniziato, ma ho letto su SO che la sua deprecato)
- Utilizzando
p.wait()
esubprocess.Popen.wait
. Entrambi non funzionano. - Utilizzo di una pausa manuale di 3 minuti (tempo massimo che MATLAB impiega a terminare in media) Super Sloppy.
Cosa mi manca?
Ho avuto una cosa simile nella mia pagina ASP.NET MVC durante il tentativo di chiamare MATLAB. Stai eseguendo una funzione specifica in MATLAB o vuoi semplicemente accenderla? – IronMan84
@ IronMan84 Non riesco a far funzionare un codice matematico in NumPy, quindi esporto le mie matrici in un file csv, lo leggo in MATLAB, calcolo ed esportazione della risposta in un file csv e rilettura in Python. –
Cosa succede se si rimuove la parentesi? – mgilson