LabVIEW中數(shù)組的自動(dòng)索引
我們?cè)贚abVIEW里面使用While或者是For循環(huán)結(jié)構(gòu)的時(shí)候,就會(huì)發(fā)現(xiàn)每一個(gè)循環(huán)中在它們的循環(huán)結(jié)構(gòu)的邊界都可以自動(dòng)完成一個(gè)數(shù)組元素的索引或累積。LabVIEW中循環(huán)結(jié)構(gòu)的這種能力就叫做自動(dòng)索引(Auto-indexing)。
不過有一點(diǎn)需要注意:LabVIEW中For循環(huán)中自動(dòng)索引功能是默認(rèn)啟用的,而While循環(huán)中自動(dòng)索引功能是默認(rèn)關(guān)閉的。
下圖中就是一個(gè)使用For循環(huán)實(shí)現(xiàn)自動(dòng)索引功能的例子:
在這里我們可以看到,在For循環(huán)中,每次循環(huán)就創(chuàng)建了數(shù)組的一個(gè)元素,當(dāng)整個(gè)循環(huán)結(jié)束之后,這個(gè)由隨機(jī)數(shù)組成的數(shù)組就被傳送到Array這個(gè)指示器中了。也就是說只有在循環(huán)結(jié)束之后才能訪問到這些數(shù)組數(shù)據(jù)。在圖中可以看到從循環(huán)結(jié)構(gòu)邊界到Array指示器控件之間的連線變粗了,表示這是一個(gè)數(shù)組類型的數(shù)據(jù)。如果你只想要把一個(gè)單一的變量從For循環(huán)中傳送出來,那么你就需要在循環(huán)結(jié)構(gòu)外框上的數(shù)據(jù)傳輸通道上面點(diǎn)擊鼠標(biāo)右鍵,并在彈出的菜單中選擇Disable Indexing即可。如下圖所示:
不過,當(dāng)關(guān)閉自動(dòng)索引之后,從循環(huán)中傳出的數(shù)值為其最后一次循環(huán)所產(chǎn)生的數(shù)值。這一點(diǎn)需要清楚。一般來說,自動(dòng)索引會(huì)個(gè)初學(xué)者造成不小的困擾。
當(dāng)把數(shù)組連線進(jìn)入循環(huán)結(jié)構(gòu)的時(shí)候也可以使用自動(dòng)索引的功能。如下圖中左側(cè)的框圖所示,當(dāng)自動(dòng)索引功能啟用后,循環(huán)結(jié)構(gòu)的每次循環(huán)會(huì)自動(dòng)索引輸入數(shù)組的一個(gè)元素(從框圖內(nèi)外的連線也可以看出,從數(shù)組控件到循環(huán)結(jié)構(gòu)之間的連線是較粗的,而通過自動(dòng)索引之后就變細(xì)了)。如果如下圖右側(cè)所示,關(guān)閉自動(dòng)索引功能,數(shù)組就是一股腦的輸入到循環(huán)內(nèi)部了。