学习LabVIEW(八)——用循环处理数组
扫描二维码
随时随地手机看文章
从上图看以看出,隧道有三种模式:最终值、索引、连接。配置不同的隧道模式,可以让循环拥有不同的功能。索引模式的隧道表现为循环框上一个里面有一对中括号[]的小方框,最终值模式的隧道表现为实心的小方框。
如果输入循环的数据为一个1D数组,经过索引模式的隧道后的数据流就成了一个标量,此时循环的作用为:用循环框内的框图处理数组中的每一个元素,这种感觉有点类似于MATLAB的arrayfun和Python的map,不同的是,我们可以在循环里使用移位寄存器来实现一个迭代的运算。输出端就是反过来的效果;如果输入循环的数据为一个2D数组,经过索引模式的隧道后的数据流就成了一个1D数组,循环每次处理2D数组的一行(或是一列,我还没有查清楚LabVIEW是Column-major还是Row-major)。输出端就是反过来的效果。
上图的程序中,算法部分嵌套了三层循环。最外层的循环用来把输入的初始矩阵拆成一个一个的1D数组,中层的循环用来把1D数组拆成一个一个的标量,在最内层则是迭代算法,实现的计算如下所示:
z = 0
for k in range(128):
然后输出k。