新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > LabVIEW編程技巧——如何實(shí)現(xiàn)集合函數(shù)

LabVIEW編程技巧——如何實(shí)現(xiàn)集合函數(shù)

作者: 時(shí)間:2017-02-27 來源:網(wǎng)絡(luò) 收藏

  Labview的數(shù)組操作功能是非常強(qiáng)大的,除了數(shù)組函數(shù)選板中提供的函數(shù)之外,信號(hào)處理函數(shù)選板中的函數(shù)實(shí)際上也是在操作數(shù)組,但是并沒有提供直接的集合函數(shù)。在MathScript中,LabVIEW提供了幾個(gè)集合相關(guān)函數(shù)。

  下面我我將利用OPENG中的數(shù)組函數(shù)實(shí)現(xiàn)針對(duì)一維數(shù)組的集合函數(shù),并利用MathScript對(duì)其進(jìn)行驗(yàn)證。

  一、uNIque集合函數(shù)

  我首先要介紹的是unique函數(shù)。unique本意是唯一的意思,對(duì)輸入的數(shù)組去掉重復(fù)的元素,形成新的數(shù)組,新數(shù)組中的所有元素都是唯一的,各不相同。

  OPENG中直接提供了這樣的函數(shù),函數(shù)名為“去除數(shù)組中的重復(fù)元素”。函數(shù)除了返回去除重復(fù)元素后的數(shù)組外,還同時(shí)返回了刪除元素的索引。具體用法見下圖。

  可以看出MathScript的Sets_unique函數(shù)對(duì)數(shù)組進(jìn)行了排序而OPENG的“去除數(shù)組中的重復(fù)元素”函數(shù)并沒用進(jìn)行排序,依然保持原來的次序。

  二、Union集合函數(shù)

  Union集合函數(shù)實(shí)現(xiàn)的是兩個(gè)集合的并集。對(duì)LABVIEW來說,是合并兩個(gè)一維數(shù)組,并去除其中重復(fù)元素。具體用法見下圖:

  在一、二中,我使用了OPENG中的“去除數(shù)組中重復(fù)元素”函數(shù),該函數(shù)的程序框圖如下圖所示:

  該函數(shù)是通過搜索數(shù)組元素的方法實(shí)現(xiàn)的。首先構(gòu)造一個(gè)相同類型的空數(shù)組,對(duì)于輸入數(shù)組中的沒一個(gè)元素,搜索構(gòu)造的數(shù)組中是否存在該元素,如果不存在,則該元素進(jìn)入構(gòu)造的數(shù)組。

  三、intersect集合函數(shù)

  intersect集合函數(shù)返回兩個(gè)集合的交集。對(duì)于兩個(gè)一維數(shù)組,intersect函數(shù)返回兩個(gè)數(shù)組中的公共元素。

  四、DIFF集合函數(shù)

  DIFF函數(shù)返回兩個(gè)集合中去除公共部分余下的元素。OPENG中的“過濾一維數(shù)組”函數(shù)實(shí)現(xiàn)的正好是DIFF函數(shù)的功能,如下圖所示:

  五、XOR集合函數(shù)

  XOR集合函數(shù)返回一個(gè)集合,該集合中的元素要么屬于輸入集合1,要么屬于輸入集合2.。對(duì)于LABVIEW中的兩個(gè)一維數(shù)組,返回兩個(gè)數(shù)組合并后去除公共元素后的數(shù)組。

  上面我利用OPENG中的數(shù)組函數(shù)實(shí)現(xiàn)了集合中的幾個(gè)常用函數(shù),顯然MATHSCRIPT要方便的多。而且MATHSCRIPT中的集合函數(shù)一般都支持矩陣運(yùn)算,因此對(duì)于二維數(shù)組同樣適用。同時(shí)MATHSCRIPT已經(jīng)支持RT結(jié)構(gòu),相信其用途會(huì)越來越廣。



關(guān)鍵詞: LabVIEW編程技巧集合函

評(píng)論


技術(shù)專區(qū)

關(guān)閉