Matlabで動作するコンピュータービジョンシステムがいくつかあります。何かを検出したら、それが見つかったことを Python に伝えたいと思います。追加情報なしで yes または no だけですが、システムは無限ループで動作するため、Python が常に Matlab を何らかの方法で追跡するようにします。
これを行う最も簡単な方法は何だろうか。
たとえば、Matlab はデスクトップ上にファイルを作成できます。このファイルは Python が認識し、機能に応じてトリガーされます。
一定の高速通信が必要な場合は、Python アプリケーションを特定のポートでリッスンし、MATLAB からそのポートに接続することをお勧めします。その後、双方向で情報を交換できます。
何かが見つかった場合、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 スクリプトを変更できない場合は、Python を介して matlab を呼び出すことができるモジュールであるmlabwrapを見ることができます。この回答も参照してください。