6

Matlabで動作するコンピュータービジョンシステムがいくつかあります。何かを検出したら、それが見つかったことを Python に伝えたいと思います。追加情報なしで yes または no だけですが、システムは無限ループで動作するため、Python が常に Matlab を何らかの方法で追跡するようにします。

これを行う最も簡単な方法は何だろうか。

たとえば、Matlab はデスクトップ上にファイルを作成できます。このファイルは Python が認識し、機能に応じてトリガーされます。

4

2 に答える 2

7

一定の高速通信が必要な場合は、Python アプリケーションを特定のポートでリッスンし、MATLAB からそのポートに接続することをお勧めします。その後、双方向で情報を交換できます。

于 2013-08-26T08:38:11.113 に答える
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 スクリプトを変更できない場合は、Python を介して matlab を呼び出すことができるモジュールであるmlabwrapを見ることができます。この回答も参照してください。

于 2013-08-26T02:00:32.647 に答える