labview編程技巧-----如何過濾數組中的元素
Labview編程技巧-----如何過濾數組中的元素
有關過濾掉數組中0的問題,這實際上是過濾數組指定元素的問題,LABVIEW的基本數組操作并沒有提供相應的節點,處理這個問題是很有技巧的.
LABVIEW內存操作的時候,對于數據量非常大的數組,如果處理不當地話,會極大影響程序的性能.
OPENG中提供了非常好的處理節點,介紹如下:


我的例子中利用斜坡函數生成一個0--127的自然數組(我用的是DBL),目的是過濾掉值等于1,3,5的元素,運行結果可以看出,135的元素的確被過濾掉了,同時也返回被過濾掉的元素的索引號INDICES
我們跟蹤一下它的實現方法

可以看出,它首先做的是在數組中搜索需要過濾的元素的索引號,并通過循環形成一個由索引號組成的數組.
繼續跟蹤一下它的搜索實現的方法

它不過是利用最基本的數組搜索函數,值得一提的是這個VI說明了如何連續搜索的方法,通過在循環中調用搜索VI,如果沒有符合條件的元素,搜索返回-1,否則返回元素的索引號(偏移量),這相當于C中的指針操作,并以該次索引作為下一次搜索的開始位置,這樣就實現了連續搜索.
在看看得到索引號數組后,如何過濾這些元素.

這個VI中可以看出它利用的是刪除數組元素的方法,這里的關鍵是必須從后往前刪除,否則如果從前向后刪除,則索引號的位置會發生變化.因此,對索引數組做了降序處理.
評論