Python API: how to get the output?
Show older comments
I would like to call a long-running matlab function from python and print its output while it is running to see the progress. My problem is that out and err is empty if I run with async=True. Why, and how can I fix it? Here is my python code:
import StringIO
import matlab.engine
import time
out = StringIO.StringIO()
err = StringIO.StringIO()
eng = matlab.engine.start_matlab()
future = eng.long_running(5, stdout=out, stderr=err, async=True)
while not future.done():
time.sleep(2)
print 'output', out.getvalue(), err.getvalue()
print 'result', future.result()
eng.quit()
And the matlab function:
function [ result ] = long_running( secs )
%LONG_RUNNING This function runs for a long time and write to stdout
result = 0;
disp('Long_running function started running...')
for i = 1:secs
fprintf('%d iteration\n',i)
result = result + 1;
pause(1);
end
disp('Long_running function finished running.')
end
Accepted Answer
More Answers (0)
Categories
Find more on Call MATLAB from Python in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!