labview編程技巧-----如何過濾數(shù)組中的元素
Labview編程技巧-----如何過濾數(shù)組中的元素
有關過濾掉數(shù)組中0的問題,這實際上是過濾數(shù)組指定元素的問題,LABVIEW的基本數(shù)組操作并沒有提供相應的節(jié)點,處理這個問題是很有技巧的.
LABVIEW內(nèi)存操作的時候,對于數(shù)據(jù)量非常大的數(shù)組,如果處理不當?shù)卦?會極大影響程序的性能.
OPENG中提供了非常好的處理節(jié)點,介紹如下:
我的例子中利用斜坡函數(shù)生成一個0--127的自然數(shù)組(我用的是DBL),目的是過濾掉值等于1,3,5的元素,運行結果可以看出,135的元素的確被過濾掉了,同時也返回被過濾掉的元素的索引號INDICES
我們跟蹤一下它的實現(xiàn)方法
可以看出,它首先做的是在數(shù)組中搜索需要過濾的元素的索引號,并通過循環(huán)形成一個由索引號組成的數(shù)組.
繼續(xù)跟蹤一下它的搜索實現(xiàn)的方法
它不過是利用最基本的數(shù)組搜索函數(shù),值得一提的是這個VI說明了如何連續(xù)搜索的方法,通過在循環(huán)中調用搜索VI,如果沒有符合條件的元素,搜索返回-1,否則返回元素的索引號(偏移量),這相當于C中的指針操作,并以該次索引作為下一次搜索的開始位置,這樣就實現(xiàn)了連續(xù)搜索.
在看看得到索引號數(shù)組后,如何過濾這些元素.
這個VI中可以看出它利用的是刪除數(shù)組元素的方法,這里的關鍵是必須從后往前刪除,否則如果從前向后刪除,則索引號的位置會發(fā)生變化.因此,對索引數(shù)組做了降序處理.
評論