技术中心
 
 

LabVIEW编程技巧-----如何过滤数组中的元素

   日期:2012-04-05     来源:中国测控网    
核心提示:有关过滤掉数组中0的问题,这实际上是过滤数组指定元素的问题,LABVIEW的基本数组操作并没有提供相应的节点,处理这个问题是很有技巧的.LABVIEW内存操作的时候,对于数据量非常大的数组,如果处理不当地话,会极大影响程序的性能.

  LabVIEW编程技巧-----如何过滤数组中的元素

  有关过滤掉数组中0的问题,这实际上是过滤数组指定元素的问题,LabVIEW的基本数组操作并没有提供相应的节点,处理这个问题是很有技巧的.

  LabVIEW内存操作的时候,对于数据量非常大的数组,如果处理不当地话,会极大影响程序的性能.

  OPENG中提供了非常好的处理节点,介绍如下:

  我的例子中利用斜坡函数生成一个0--127的自然数组(我用的是DBL),目的是过滤掉值等于1,3,5的元素,运行结果可以看出,135的元素的确被过滤掉了,同时也返回被过滤掉的元素的索引号INDICES

  我们跟踪一下它的实现方法

  可以看出,它首先做的是在数组中搜索需要过滤的元素的索引号,并通过循环形成一个由索引号组成的数组.

  继续跟踪一下它的搜索实现的方法

  它不过是利用最基本的数组搜索函数,值得一提的是这个VI说明了如何连续搜索的方法,通过在循环中调用搜索VI,如果没有符合条件的元素,搜索返回-1,否则返回元素的索引号(偏移量),这相当于C中的指针操作,并以该次索引作为下一次搜索的开始位置,这样就实现了连续搜索.

  在看看得到索引号数组后,如何过滤这些元素.

  这个VI中可以看出它利用的是删除数组元素的方法,这里的关键是必须从后往前删除,否则如果从前向后删除,则索引号的位置会发生变化.因此,对索引数组做了降序处理.

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢