學習LabVIEW(八)——用循環處理數組

從上圖看以看出,隧道有三種模式:最終值、索引、連接。配置不同的隧道模式,可以讓循環擁有不同的功能。索引模式的隧道表現為循環框上一個里面有一對中括號[]的小方框,最終值模式的隧道表現為實心的小方框。
- 如果輸入循環的數據為一個1D數組,經過索引模式的隧道后的數據流就成了一個標量,此時循環的作用為:用循環框內的框圖處理數組中的每一個元素,這種感覺有點類似于MATLAB的arrayfun和Python的map,不同的是,我們可以在循環里使用移位寄存器來實現一個迭代的運算。輸出端就是反過來的效果;
- 如果輸入循環的數據為一個2D數組,經過索引模式的隧道后的數據流就成了一個1D數組,循環每次處理2D數組的一行(或是一列,我還沒有查清楚LabVIEW是Column-major還是Row-major)。輸出端就是反過來的效果。

上圖的程序中,算法部分嵌套了三層循環。最外層的循環用來把輸入的初始矩陣拆成一個一個的1D數組,中層的循環用來把1D數組拆成一個一個的標量,在最內層則是迭代算法,實現的計算如下所示:
z = 0
for k in range(128):
然后輸出k。

評論