我们在LabVIEW里面使用While或者是For循环结构的时候,就会发现每一个循环中在它们的循环结构的边界都可以自动完成一个数组元素的索引或累积。LabVIEW中循环结构的这种能力就叫做自动索引(Auto-indexing)。
下图中就是一个使用For循环实现自动索引功能的例子:
在这里我们可以看到,在For循环中,每次循环就创建了数组的一个元素,当整个循环结束之后,这个由随机数组成的数组就被传送到Array这个指示器中了。也就是说只有在循环结束之后才能访问到这些数组数据。在图中可以看到从循环结构边界到Array指示器控件之间的连线变粗了,表示这是一个数组类型的数据。
如果你只想要把一个单一的变量从For循环中传送出来,那么你就需要在循环结构外框上的数据传输通道上面点击鼠标右键,并在弹出的菜单中选择Disable Indexing即可。如下图所示:
不过,当关闭自动索引之后,从循环中传出的数值为其最后一次循环所产生的数值。这一点需要清楚。一般来说,自动索引会个初学者造成不小的困扰。
当把数组连线进入循环结构的时候也可以使用自动索引的功能。如下图中左侧的框图所示,当自动索引功能启用后,循环结构的每次循环会自动索引输入数组的一个元素(从框图内外的连线也可以看出,从数组控件到循环结构之间的连线是较粗的,而通过自动索引之后就变细了)。如果如下图右侧所示,关闭自动索引功能,数组就是一股脑的输入到循环内部了。
使用自动索引设定循环结构的循环次数
当启用自动索引并把一个数组输入到For循环之中的时候,LabVIEW会自动设定该循环的循环次数为该数组中元素的个数,这时就可以不用在For循环结构的循环次数输入端输入循环次数参数了。如果在启用自动索引时,在循环结构的循环次数输入端输入了某个特定设数值或者是同时输入两个长度不同的数组进入For循环结构,那么循环要执行的次数以输入数组长度与设定执行次数的最小值为准。
如下图所示,数组长度为10,设定循环次数为25,最终执行则为10次: