Python和Matlab之间的通信

Ser*_*nov 6 python matlab ipc

我有一些在Matlab中工作的计算机视觉系统.当它检测到我要告诉Python它发现它的东西时.只是是或否没有任何其他信息,但系统工作在无限循环中,所以我希望Python不断地以某种方式跟踪Matlab.

我想知道最简单的方法是什么.

例如,Matlab可以在桌面上创建一个Python将会看到并根据功能触发的文件.

Flo*_*ker 7

如果您需要持续快速的通信,我建议您让Python应用程序侦听特定端口从MATLAB连接到该端口.然后,您可以双向交换信息.


Har*_*non 4

如果 Matlab 进程发现某些内容,它是否会以特定的退出代码退出?在这种情况下只需使用退出代码即可。或者,只需让 Matlab 进程将其输出写入一个文件,然后您可以在 python 中创建一个观察程序来检测文件中的更改。

最简单的方法是让 Matlab 在发现某些内容时也创建一个空文件(除了输出文件本身之外)。然后你可以使用os.path.exists()time.sleep定期检查文件是否存在:

import os
import time

path='/path/to/file/created/by/matlab'
while not os.path.exists(path):
    print("Matlab output file still not present. Waiting for 1 s and retrying...")
    time.sleep(1)
print("Matlab process generated output. Now I can do what I want to do")
Run Code Online (Sandbox Code Playgroud)

如果你无法更改matlab脚本,那么你可以看看mlabwrap,它是一个模块,通过它你可以通过python调用matlab。另请参阅此答案