Matlab에서 작동하는 컴퓨터 비전 시스템이 있습니다. 그것이 뭔가를 발견했을 때 나는 그것을 발견했다고 파이썬에게 말하고 싶다. 추가 정보없이 예 또는 아니오,하지만 시스템은 무한 루프에서 작동하므로 파이썬이 Matlab을 어떻게 든 추적하고 싶습니다.Python과 Matlab 간의 통신
가장 쉬운 방법은 무엇일까요?
예를 들어, Matlab은 Python이 기능에 따라보고 트리거하는 파일을 데스크탑에 만들 수 있습니다.
Matlab에서 작동하는 컴퓨터 비전 시스템이 있습니다. 그것이 뭔가를 발견했을 때 나는 그것을 발견했다고 파이썬에게 말하고 싶다. 추가 정보없이 예 또는 아니오,하지만 시스템은 무한 루프에서 작동하므로 파이썬이 Matlab을 어떻게 든 추적하고 싶습니다.Python과 Matlab 간의 통신
가장 쉬운 방법은 무엇일까요?
예를 들어, Matlab은 Python이 기능에 따라보고 트리거하는 파일을 데스크탑에 만들 수 있습니다.
뭔가 발견되면 Matlab 프로세스가 특정 종료 코드로 종료합니까? 이 경우 종료 코드 만 사용하십시오. 아니면 Matlab 프로세스가 출력물을 가진 파일을 작성하게하고 파이썬에서 파일의 변경을 감지하는 감시자를 만들 수 있습니다.
가장 간단한 방법은 Matlab이 무언가를 찾았을 때 빈 파일 (출력 파일 자체 외에)을 생성하도록하는 것입니다. 파일이 os.path.exists() 및 time.sleep 사용하여 정기적으로 존재하는 경우 다음 당신은 그냥 계속 확인 할 수 있습니다 당신은 MATLAB 스크립트를 변경할 수없는 경우
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")
을, 당신은 모듈이 mlabwrap 한 번 봐 걸릴 수있는 당신이 할 수있는을 통해 파이썬 통해 matlab를 호출합니다. 또한 this answer을 참조하십시오.
아니요, 종료되지 않습니다. 파이썬 라이브러리를 사용하여 텍스트 파일을 추적해야합니까? –
Matlab은 뭔가를 발견 할 때마다 빈 파일을 간단하게 만들 수 있습니다. 파이썬에서는 잠자기 시간에 파일을 계속 확인합니다. (이것도 포함하여 편집 된 답변) –
@ Raze2dust : 파일 시스템 변경 사항을 폴링하기 위해 바쁜 대기보다 나은 방법이 있습니다. 내 [코멘트] (위의 http://stackoverflow.com/questions/18435546/communication-between-python-and-matlab#comment27104176_18435546)를 참조하십시오. – Amro
당신이 일정하고 빠른 의사 소통을 필요로한다면 나는 당신이 파이썬 응용 프로그램 listen on a specific port과 connect to that port from MATLAB을 만들 것을 제안 할 것이다. 그런 다음 양방향으로 정보를 교환 할 수 있습니다.
그것은 흥미있는 해결책이다. 이 솔루션은 파일 통신에 비해 이점이 있습니까? –
@BranAlgue : 주요 이점은 속도 (디스크 관련 없음) 및 이식성 (모든 OS에서 작동, Python 및 MATLAB은 다른 컴퓨터에서 실행 가능)입니다. 그러나 구현하기가 더 복잡하기 때문에 최적의 접근 방식은 특정 사용 사례에 따라 다릅니다. –
매력처럼 작동하지만 보내고받은 바이트 수에주의해야합니다. 그렇지 않으면 상황이 엉망이됩니다. – karttinen
파일이 가장 쉽습니다. U는이 파일을 램 디스크로 만들거나 SSD를 통해 쓰기/읽기를 더 빠르게 할 수 있습니다. 얼마나 자주 변경되는지에 따라 다릅니다. – Marcin
파이썬에 대한 MATLAB 응용 프로그램의 파이프 stdout은 무엇입니까? – moooeeeep
@BranAlgue :이 접근법을 살펴보십시오 : http://stackoverflow.com/a/10964190/97160, 파일 시스템을 사용하여 Python에 MATLAB에서 트리거 된 이벤트를 알립니다. – Amro