Labview:删除负号和重复项后的一维数组排序

Labview : 1D array sorting after removing minus numbers and duplicates

我有一个数字数组,如下图所示。

我想删除整个负数和重复的数字,并按升序对数组进行排序,如下所示。

我该怎么做?

这样就可以了:

  • 对数组进行排序
  • 找到0并切割数组
  • 减去旋转数组以找到双打 (=0)
  • 删除双打

除非有真正的效率需求,否则我会追求简单性和可读性:

  1. 对数组进行排序
  2. 将其送入带有条件串联终端的 for 循环
    1. 使用反馈节点获取最后一个值
    2. 如果此值 >0 且 != 到最后一个值,则将 true 发送到串联终端。

您始终可以将 >0 和 != 测试放在一起并将其直接连接到串联终端。

for 循环的输出数组就是您要查找的内容。

我喜欢 Vivien 使用 Threshold 1D ArrayArray Subset 来删除负值,但是在删除零之前旋转和减去似乎不必要的复杂。这是一个带有 For 循环、移位寄存器和条件索引的解决方案:

请注意,我们必须用一些东西来初始化移位寄存器,否则它会记住之前 运行 的数据,从而产生不需要的行为(反馈节点也是如此)——所以我们确保通过确保初始化值不等于第一个元素,将始终包含第一个数组元素。