第二次执行MATLAB®脚本节点时出现错误1050

更新 Sep 22, 2020

适用于

软件

  • LabVIEW
  • LabVIEW MathScript Module

问题详述

我使用LabVIEW MATLAB script node与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代码内部的向量中。
  • 手动将向量初始化为足够的长度以便它们可以容纳将传递给它的最大数组。传递一个额外的参数以了解有效载荷数据的大小。