labview編程技巧-----如何過(guò)濾數(shù)組中的元素
Labview編程技巧-----如何過(guò)濾數(shù)組中的元素
有關(guān)過(guò)濾掉數(shù)組中0的問(wèn)題,這實(shí)際上是過(guò)濾數(shù)組指定元素的問(wèn)題,LABVIEW的基本數(shù)組操作并沒(méi)有提供相應(yīng)的節(jié)點(diǎn),處理這個(gè)問(wèn)題是很有技巧的.
LABVIEW內(nèi)存操作的時(shí)候,對(duì)于數(shù)據(jù)量非常大的數(shù)組,如果處理不當(dāng)?shù)卦?會(huì)極大影響程序的性能.
OPENG中提供了非常好的處理節(jié)點(diǎn),介紹如下:


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

可以看出,它首先做的是在數(shù)組中搜索需要過(guò)濾的元素的索引號(hào),并通過(guò)循環(huán)形成一個(gè)由索引號(hào)組成的數(shù)組.
繼續(xù)跟蹤一下它的搜索實(shí)現(xiàn)的方法

它不過(guò)是利用最基本的數(shù)組搜索函數(shù),值得一提的是這個(gè)VI說(shuō)明了如何連續(xù)搜索的方法,通過(guò)在循環(huán)中調(diào)用搜索VI,如果沒(méi)有符合條件的元素,搜索返回-1,否則返回元素的索引號(hào)(偏移量),這相當(dāng)于C中的指針操作,并以該次索引作為下一次搜索的開(kāi)始位置,這樣就實(shí)現(xiàn)了連續(xù)搜索.
在看看得到索引號(hào)數(shù)組后,如何過(guò)濾這些元素.

這個(gè)VI中可以看出它利用的是刪除數(shù)組元素的方法,這里的關(guān)鍵是必須從后往前刪除,否則如果從前向后刪除,則索引號(hào)的位置會(huì)發(fā)生變化.因此,對(duì)索引數(shù)組做了降序處理.
評(píng)論