2013-07-10 2 views
0

Matlab 및 .EXE 파일은 얼마나 호환됩니까? Win32 API가 matlab에 메시지를 보내고 matlab이 실시간으로 메시지를 읽을 수있게 할 수 있습니까?Matlab을 Window 응용 프로그램에 연결

좀 더 정확히 말해서 실시간으로 다른 애플리케이션의 메시지를 수신하고 처리하도록 Matlab을 만들 수 있습니까?

이러한 메시지를 처리 ​​할 때 Matlab에서 사용해야 할 루프 유형에 대한 우려도 있습니다. 무한 루프는 좋은 연습일까요? 예

while(infinite loop) 
if (received message) 
    do something 
end 
end 

참고

는 상기 전용 코드로 의도되지 알고리즘이다.

답변

1

질문의 첫 번째 부분은 Matlab Engine 인 것으로 보입니다.

질문의 두 번째 부분 : 많은 코딩 표준에서 무한 루프를 피하는 것이 좋습니다. 무한 루프의 문제는 끝내지 않을 수도 있습니다. 종료 조건을 잘못 또는 불완전하게 코딩하는 것이 너무 쉽기 때문에 루프가 끝나지 않고 프로그램 실행이 멈추는 원인이됩니다. 이런 종류의 버그는 단위 테스트 (종종 실패한 이탈 조건) 또는 고객의 첫 번째 배치가 프로그램 충돌에 대해 불평하기 시작한 후에 만 ​​발생할 수 있습니다 (자주 종료하지 않는 조건이 아님). 무한 루프의이 (다른 많은 등) 함정 전부 완전히 다른 패러다임을 사용하여 반복

  • 의 양을 최대로 설정 유한 한
  • 의 무한 루프를 번역

    • 의해 종종 피할 수있다.

    IPC (프로그램의 일부가 프로그램의 다른 부분 또는 다른 프로그램의 메시지를 모두 듣는 경우) 마지막 옵션이 가장 좋습니다. event based approach을 사용하면 무한 루프가 발생하지 않습니다. MATLAB은 이것을 events and listeners 형태로 지원합니다. 이것은 MATLAB의 OOP의 일부이므로 OOP를 이미 따라야하거나 사용하려는 모든 것을 OOP로 변환해야합니다.

  • +0

    종료 조건이 올바르면 무한 루프가 좋습니다. 조건부 중단이있는 while while 루프와 while while 조건의 차이점은 무엇입니까? 다른 점이 없다. 두 번째 단락은 근거가 없습니다. 메시지 루프는 최대 반복을 갖는 유한 루프로 작성되지 않습니다. 코딩 한 메시지의 최대 개수를 수신했기 때문에 프로그램을 끝내면 즐거움을 상상해보십시오. 그 대답의 전체 부분을 삭제하는 것이 좋습니다. –

    +0

    @DavidHeffernan : 나는 '조건'은 원칙적으로 '사실'과 동일하지만 실제로는 사람들이 그것을보다 견고하게 구현하는 경향이 있다고 주장했다. 이 종류의 버그를 여러 번 본 적이 있습니다. 나는 그것이 항상 따라야한다는 절대적인 법칙이라고 말하는 것이 아닙니다. 나는 * 그들을 피하기 위해 많은 사람들에게 조언 받았다고 말하지만 전혀 비용이 들지 않는다고 말하고있다. 나는 이벤트 드리븐 패러다임 (일반적으로)이 이런 종류의 일을 막는 반면 메시지를 처리하는 무한 루프의 형태로 리소스 호그를 작성하는 것은 매우 쉽다라고 말하고있다. –

    +0

    이벤트 중심의 패러다임이 어떻게 구현되고 있다고 생각하십니까? 나는 while 루프를 감지한다. 'while' 루프가 유한하거나 반복의 최대 횟수를 가질 것이라고 생각합니까? –

    관련 문제