我们在LabVIEW里面使用While或者是For循环结构的时候,就会发现每一个循环中在它们的循环结构的边界都可以自动完成一个数组元素的索引或累积。LabVIEW中循环结构的这种能力就叫做自动索引(Auto-indexing)。

  不过有一点需要注意:LabVIEWFor循环中自动索引功能是默认启用的,而While循环中自动索引功能是默认关闭的。

  下图中就是一个使用For循环实现自动索引功能的例子:

  在这里我们可以看到,在For循环中,每次循环就创建了数组的一个元素,当整个循环结束之后,这个由随机数组成的数组就被传送到Array这个指示器中了。也就是说只有在循环结束之后才能访问到这些数组数据。在图中可以看到从循环结构边界到Array指示器控件之间的连线变粗了,表示这是一个数组类型的数据。

  如果你只想要把一个单一的变量从For循环中传送出来,那么你就需要在循环结构外框上的数据传输通道上面点击鼠标右键,并在弹出的菜单中选择Disable Indexing即可。如下图所示:

  不过,当关闭自动索引之后,从循环中传出的数值为其最后一次循环所产生的数值。这一点需要清楚。一般来说,自动索引会个初学者造成不小的困扰。

  当把数组连线进入循环结构的时候也可以使用自动索引的功能。如下图中左侧的框图所示,当自动索引功能启用后,循环结构的每次循环会自动索引输入数组的一个元素(从框图内外的连线也可以看出,从数组控件到循环结构之间的连线是较粗的,而通过自动索引之后就变细了)。如果如下图右侧所示,关闭自动索引功能,数组就是一股脑的输入到循环内部了。

使用自动索引设定循环结构的循环次数

  当启用自动索引并把一个数组输入到For循环之中的时候,LabVIEW会自动设定该循环的循环次数为该数组中元素的个数,这时就可以不用在For循环结构的循环次数输入端输入循环次数参数了。如果在启用自动索引时,在循环结构的循环次数输入端输入了某个特定设数值或者是同时输入两个长度不同的数组进入For循环结构,那么循环要执行的次数以输入数组长度与设定执行次数的最小值为准。
  如下图所示,数组长度为10,设定循环次数为25,最终执行则为10次:

LabVIEW中数组的自动索引的更多相关文章

  1. labview中的移位寄存器、循环隧道,自动索引隧道的区别

    对于循环结构(For 循环.while循环)而言,循环体内的数据域外部数据的传递是通过以下三种方式: 1.移位寄存器2.循环隧道3.自动索引隧道 第一.各自的区别.作用 循环隧道,就是把数据传入传出循 ...

  2. C#中使用IndexOf()判断字符串在字符串数组中第一次出现的索引位置

    ] {"}; "; //判断字符串的前几位在另一个字符串数组中第一次出现的索引位置 index = Array.IndexOf(s, s1.Substring(, ));

  3. JS中数组的操作[转]

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  4. C#中数组Array、ArrayList、泛型List<T>的比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  5. javascript中数组揭秘

    js中的数组很强大,不仅仅是一个数组,更是一个无所不能的集合. 创建 可以使用 数组字面量 方式创建: var arr = [] 或者 var arr = new Array() 添加元素 arr.p ...

  6. C#中数组、ArrayList和List三者的区别

    在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. ...

  7. JS中数组的操作

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  8. c语言中数组相关问题

    c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...

  9. 私人定制javascript中数组小知识点(Only For Me)

    先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好, ...

随机推荐

  1. k8s的容器监测探针

    大部分的应用程序我们在部署的时候都会适当的添加监控,对于运行载体容器则更应该如此.kubernetes提供了 liveness probes来检查我们的应用程序.它是由节点上的kubelet定期执行的 ...

  2. 改善C#程序的建议9:使用Task代替ThreadPool和Thread

    一:Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: 1: ThreadPool不支持线程的取消.完成.失败通知等交互 ...

  3. tomcat 源码分析

    Tomcat源码分析——Session管理分析(下)    Tomcat源码分析——Session管理分析(上)     Tomcat源码分析——请求原理分析(下)     Tomcat源码分析——请 ...

  4. python学习之itsdangerous模块

    类 from itsdangerous import URLSafeTimedSerializer as ustsr class ustsr(secret_key) 参数: secret_key可以是 ...

  5. 每日英语:Some Chinese Students Stay Home to Get Ahead

    Li Shan's oldest son was the perfect candidate to join the throngs of Chinese students studying abro ...

  6. Oracle PLSQL Demo - 15.强类型REF游标[预先指定查询类型与返回类型]

    declare Type ref_cur_emp IS REF CURSOR RETURN scott.emp%RowType; cur_emp ref_cur_emp; rec_emp cur_em ...

  7. form表单提交数据编码方式和tomcat接受数据解码方式的思考

    http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html *********************************************** ...

  8. web.xml中init-param中的param-name

    转载自:http://www.cnblogs.com/hzj-/articles/1689836.html <context-param>的作用:web.xml的配置中<contex ...

  9. windows 批处理-重命名

    从数字1递增批量重命名ren.bat: @echo off SETLOCAL ENABLEDELAYEDEXPANSION set /A num= FOR /F "tokens=*" ...

  10. 【C++程序员学 python】python 之变量

    既然学过C++,那么就应该知道变量是什么,常量是什么. python 相比于C++,在使用变量之前不用先声明. 而是直接使用,python 会根据你的变量自动识别其类型. 假如a = 123 那么a ...