Labview:删除负号和重复项后的一维数组排序
Labview : 1D array sorting after removing minus numbers and duplicates
我有一个数字数组,如下图所示。
我想删除整个负数和重复的数字,并按升序对数组进行排序,如下所示。
我该怎么做?
这样就可以了:
- 对数组进行排序
- 找到0并切割数组
- 减去旋转数组以找到双打 (=0)
- 删除双打
除非有真正的效率需求,否则我会追求简单性和可读性:
- 对数组进行排序
- 将其送入带有条件串联终端的 for 循环
- 使用反馈节点获取最后一个值
- 如果此值 >0 且 != 到最后一个值,则将 true 发送到串联终端。
您始终可以将 >0 和 != 测试放在一起并将其直接连接到串联终端。
for 循环的输出数组就是您要查找的内容。
我喜欢 Vivien 使用 Threshold 1D Array
和 Array Subset
来删除负值,但是在删除零之前旋转和减去似乎不必要的复杂。这是一个带有 For
循环、移位寄存器和条件索引的解决方案:
请注意,我们必须用一些东西来初始化移位寄存器,否则它会记住之前 运行 的数据,从而产生不需要的行为(反馈节点也是如此)——所以我们确保通过确保初始化值不等于第一个元素,将始终包含第一个数组元素。
我有一个数字数组,如下图所示。
我想删除整个负数和重复的数字,并按升序对数组进行排序,如下所示。
我该怎么做?
这样就可以了:
- 对数组进行排序
- 找到0并切割数组
- 减去旋转数组以找到双打 (=0)
- 删除双打
除非有真正的效率需求,否则我会追求简单性和可读性:
- 对数组进行排序
- 将其送入带有条件串联终端的 for 循环
- 使用反馈节点获取最后一个值
- 如果此值 >0 且 != 到最后一个值,则将 true 发送到串联终端。
您始终可以将 >0 和 != 测试放在一起并将其直接连接到串联终端。
for 循环的输出数组就是您要查找的内容。
我喜欢 Vivien 使用 Threshold 1D Array
和 Array Subset
来删除负值,但是在删除零之前旋转和减去似乎不必要的复杂。这是一个带有 For
循环、移位寄存器和条件索引的解决方案:
请注意,我们必须用一些东西来初始化移位寄存器,否则它会记住之前 运行 的数据,从而产生不需要的行为(反馈节点也是如此)——所以我们确保通过确保初始化值不等于第一个元素,将始终包含第一个数组元素。