How do I run Matlab from Python, but save figures to a file?

I am successfully running Matlab from Python. The Matlab code I have displays 2 figures. Upon running Python, would rather those figures go to a file. Is there a switch, or some such option to get that to happen? Rather not rewrite Matlab code with some sort of Python specific switch.
Thanks, Tom

2 个评论

Why would you need a Python specific switch? Why not just save the figures using export_fig() directly from MATLAB?
I am calling an existing codebase we do not want to modify... am working a larger project. The existing codebase makes the figures. Want that in stand-alone, don't want it when called externally.

请先登录,再进行评论。

回答(2 个)

There is no such flag. Python Engine allows you to have full control over MATLAB from Python. You can simply save a figure like following example shows:
>>>eng.plot(matlab.double([1,2,3,4])) %create a plot
>>>eng.savefig("foo.fig",nargout=0) %save current figure to "foo.fig"
>>>eng.close() %close current figure

3 个评论

Is there a -nodisplay option for Matlab from Python?
Yes, I believe it works for Linux and Mac:
Start up options can be also used in Python Engine. For example, you can start MATLAB with "-nodisplay" by:
>>> eng = matlab.engine.start_matlab("-nodisplay")
You probably can try the start up option "-noFigureWindows" if the purpose is to hide the figure window:
This works on all platforms.

请先登录,再进行评论。

Why the figure turn off automatically after it show up?

类别

在 帮助中心 和 File Exchange 中查找有关 Python Package Integration 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by