Python和Matlab之间的通信

时间:2013-08-26 01:45:46

标签: python matlab ipc

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

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

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

2 个答案:

答案 0 :(得分:7)

如果您需要持续快速的沟通,我建议您制作Python应用程序listen on a specific portconnect to that port from MATLAB。然后,您可以双向交换信息。

答案 1 :(得分: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")

如果您无法更改matlab脚本,那么您可以查看mlabwrap,这是一个可以通过python调用matlab的模块。另请参阅this answer