- Redirecting stdout and stderr to StringIO stream (see example below)
- Having a console window visible
- Removing all disp functions from matlab code
Matlab Runtime "Error on flush"
5 次查看(过去 30 天)
显示 更早的评论
I am trying to use Python and MATLAB Runtime to call some code that was previously compiled using the MATLAB compiler. It's giving me the following error:
MatlabRuntimeError: An error occurred when evaluating the result from a function. Details: Error on flush.
Googling the error didn't turn anything up. Does anyone know what this might mean? I have double-checked that I am using the correct version of the compiler (9.4 R2018a), and I get the same error message whether I'm using Python 2.7 or 3.6. The MATLAB code works fine when run from MATLAB proper.
Any help would be very much appreciated!
0 个评论
回答(4 个)
Olli Tanskanen
2020-8-4
I encountered the issue as well.
I was able to reproduce the issue reliably when using pyinstaller with console option set to false (when false it won't show a console window, only your applicaton window), but when I ran the pyinstaller with console option set to true everything worked just fine. The bug seems to be related to stdout not 'existing' which causes issues in matlab side.
I was able to fix the problem with any of these:
Example on how to redirect stdout:
import io
import your_matlab_package
p_handle = your_matlab_package.initialize()
p_handle.your_matlab_function(..., stdout=io.StringIO(), stderr=io.StringIO())
If you want to actually show matlab disp results in python side you can of couse create a new class which inherits StringIO and override the write function where you would actually show/log the matlab output.
1 个评论
W Grootjans
2025-8-25,12:37
Thanks for this response. This fixed my problem for this very niche use case. Very much appreciated!!!
Andreas Blassnig
2018-11-7
Could you find a solution for this Problem? (I got the same error message.)
Best regards
kok wei
2019-6-10
I'm facing this issue with MATLAB R2019a and Python 3.6.8 as well. Appreciate for any further inputs.
0 个评论
yusuf elezler
2020-4-14
编辑:yusuf elezler
2020-4-14
The problem is display functions like disp('xxxx'). Delete or comment it and compile again. It'll work.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Call Python from MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!