博客首页 | 排行榜 |

csxcs366的博客--LABVIEW CVI

http://labview.weebly.com/ 群:80754347 群:78561268 群:37591940

个人档案
博文分类
labview编程技巧-----如何过滤数组中的元素  2008-07-03 19:12

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

我在关于LABVIEW内存操作的时候多次提到数组的问题,对于数据量非常大的数组,如果处理不当地话,会极大影响程序的性能.

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






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


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



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

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


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

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



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


类别:labview编程技巧 |
上一篇:labview编程技巧-----OPENG 的条件索引数组 | 下一篇:labview的深入探索----文件系列之写电子表格文件
以下网友评论只代表其个人观点,不代表本网站的观点或立场