執行第二次My MATLAB® Script Node時出現 Error 1050

更新 Mar 31, 2021

產品資訊

軟體

  • LabVIEW
  • LabVIEW MathScript Module

問題敘述

我使用LabVIEW MATLAB Script Node與The MathWorks,Inc.MATLAB®軟體進行互動:我的程式碼執行一次時可以正常工作。但是它在執行第二次時失敗,並顯示Error 1050

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

要再次執行它,我必須清除所有變數(在MATLAB視窗中為“ clear all”指令)才能執行VI。我希望能夠持續執行VI。

解決方案

您正在將arrays傳遞到MATLAB® script node ,然後使用它們來初始化output vectors。這些在腳本的第一次執行時被初始化為特定的長度, MATLAB內部將存儲了這些定義;然而,當執行第二次該腳本時,將通過另一個大小不同的arrays,因而導致上述螢幕截圖中出現"dimension mismatch" 的錯誤,因為新的arrays不適用先前初始化的vectors。

有幾種解決此問題的方法:
  • 每次都將相同大小的arrays傳遞到您的MATLAB Script Node。
  • 將資料存儲在elements of a Cell Array中,而不是存儲在MATLAB程式碼內部的vector中。
  • 手動將vector初始化足夠的長度,以便它們可以容納將傳遞給它的最大array。傳遞一個額外的參數以了解有效payload data的大小。