In the Python API, how can I redirect the output of an asynchronous function call of a function without return value?
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Sven-Eric Krüger
il 16 Feb 2017
Modificato: Sven-Eric Krüger
il 14 Mag 2018
I am using the Python API and I want to redirect the output of an asynchronously called function without return value. Is this maybe impossible?
My Python Script looks a little bit like this:
import matlab.engine as eng
import StringIO
out = StringIO.StringIO()
MAT = eng.start_matlab()
ret = MAT.func('arg', async=True, nargout=0, stdout=out)
while not ret.done() : pass
print out.getvalue()
MAT.quit()
When running this script, there is only a line feed / carriage return printed. The return value of
ret.result()
is "None".
0 Commenti
Risposta accettata
Bo Li
il 16 Feb 2017
What about adding "ret.result()" before printing the output buffer like following?
while not ret.done() : pass
ret.result()
print out.getvalue()
3 Commenti
Esteban Henriques
il 11 Mag 2018
Modificato: Esteban Henriques
il 11 Mag 2018
From:
def result(self, timeout=None):
in fevalfuture.py, it seems that it is not possible to get any feedback from the out stream until the call is done. Doesn't this at least in part defeat the purpose of an async call?
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Call MATLAB from Python in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!