我有一些在Matlab中运行的计算机视觉系统。当它检测到我要告诉Python它发现它的东西时。只是是或否没有任何其他信息,但系统工作在无限循环中,所以我希望Python不断地以某种方式跟踪Matlab。
我想知道最简单的方法是什么。
例如,Matlab可以在桌面上创建一个Python将会看到并根据功能触发的文件。
答案 0 :(得分:7)
如果您需要持续快速的沟通,我建议您制作Python应用程序listen on a specific port和connect 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。