数组到簇 - 元素数量不符合预期

Gha*_*ima 4 labview

我在玩 LabVIEW 最基本的功能,例如将单个元素转换为数组和集群,来回转换。(不要质疑所示算法的使用,没有。)

当将集群(当然是相似类型)转换为数组时,将其用于简单的数学运算,然后将其转换回集群,以下解包将集群拆分为其单个元素的行为很奇怪。将 unbundle 连接到这个现有集群,它会自动将其大小增加到 9,而不是预期的 3。探针和数字指示器显示前三个项目上方的元素为零。

为什么是这样?我希望要集群的数组知道转换后的数组的大小并相应地适合集群。

在此处输入图片说明

在此处输入图片说明

Gha*_*ima 5

虽然人们可以期望 Array To Cluster 自动将数组的大小应用于集群,但它使用固定的默认值,而不管底层数组的大小:

默认值为九。此函数的最大簇大小为 256。

来源:http: //zone.ni.com/reference/en-XX/help/371361J-01/glang/array_to_cluster/

可以通过右键单击函数并从快捷菜单中选择集群大小来更改此值。不幸的是,这也意味着每次更改数组时都要手动修复此问题。

解释:这种行为的原因是虽然数组的大小可以在运行时动态变化,但簇的数据结构在编译时是固定的(LabVIEW 是一种强类型语言)。需要告诉编译器集群的大小。如果您真的需要在运行时创建任意集群,您可能可以对变体做一些事情,但我会再看看您要实现的目标,以检查它是否真的有必要。

  • 这种行为的原因是,虽然数组的大小可以在运行时动态变化,但簇的结构在编译时是固定的——这正是 LabVIEW 的设计方式。如果您真的需要在运行时创建任意集群,您可能可以对变体做一些事情,但我会再看看您要实现的目标,以检查它是否真的有必要。 (2认同)
  • @nekomatic 我将您的评论合并到了答案中。可以删除对 SO 的评论,因此鼓励直接改进答案的信息合并到答案中。它还使阅读答案的人更加连贯,无需对评论进行分类即可获得完整答案。:-) (2认同)