MATLAB® 스크립트 노드의 두 번째 실행시 발생하는 에러 1050

업데이트 됨 Dec 27, 2019

해당 제품

Software

  • LabVIEW
  • LabVIEW MathScript Module

문의사항

LabVIEW MATLAB 스크립트 노드를 사용하여 The MathWorks, Inc.와 상호작용 하고 있습니다. MATLAB® 소프트웨어 코드가 한 번 실행될 때에는 제대로 작동하나 두 번째 실행 시 에러 1050으로 실패합니다.

Error occurred while executing script. Error message from server:??? Subscripted assignment dimension mismatch.

다시 실행하려면 모든 변수를 지우고 (MATLAB 윈도우에서 'clear all' 명령을 보내고) VI를 실행해야 합니다. VI를 지속적으로 실행하고 싶습니다.

해결책

배열을 MATLAB® 노드로 전달한 다음 이를 사용하여 출력 벡터를 초기화합니다. 스크립트를 처음 실행할 때 특정 길이로 초기화됩니다. MATLAB은 이러한 정의를 내부적으로 저장합니다. 새 배열이 이전에 초기화 된 벡터에 맞지 않기 때문에 다른 크기의 배열을 두 번 전달하여 스크립트를 실행하면 위 스크린 샷에서 "치수 불일치(dimension mismatch)" 에러가 발생합니다.

이 문제에 대한 몇 가지 가능한 해결책이 있습니다.
  • 매번 같은 크기의 배열을 MATLAB 스크립트 노드에 전달하십시오.
  • MATLAB 코드 내부의 벡터가 아닌 셀형 배열의 요소에 데이터를 저장하십시오.
  • 벡터를 전달할 가장 큰 배열을 보유할 수 있도록 적절한 길이로 수동으로 초기화 하십시오. 페이로드 데이터의 크기를 알기 위해 추가 인수를 전달하십시오.