我们在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. vue组件值传递之父组件向子组件传递(props)

    <template> <div class="hello"> <h1>{{ msg }}</h1> <ul> <l ...

  2. unity 查看prefab层次

    点那个箭头,可以展开:

  3. Spring Boot(一):初步认识

    简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  4. 让easyui的datagrid的field支持属性的子属性(field.childfield)

    如果不修改后台返回的数据格式,就只能修改easyui的源代码了. 首先在easyui的源代码中找到下面的部分,VS可以用 “var.*_.+=.*_.+\[.*_.+\];” 这个正则表达式来查找,会 ...

  5. Vector3.Set的正确使用

    直接调用position.Set会发现没有用.其实和其本身是结构体有关,要当成一个值类型来看待,因为他全部是在栈中. transform.position.Set(,,); 改成这样即可: var t ...

  6. 在ISE查看各个模块消耗的资源

    这个是很多兄弟姐妹非常想知道的事情.我今天就简单和大家详细说一说.其实很简单,只是大家可能没有注意而已.把图上的-detail选定即可. 转载自:http://bbs.21ic.com/blog-73 ...

  7. 【Android】8.3 自定义主题

    分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 在Android系统中,除了内置的主题外,开发人员还可以自定义主题.一般通过在Resources/value文件夹 ...

  8. C++ 11 nullptr关键字

    熟悉C++的童鞋都知道,为了避免“野指针”(即指针在首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作.如果暂时不明确该指针指向哪个变量,则需要赋予NULL值.除了NUL ...

  9. posix多线程--互斥量

    多线程程序在线程间共享数据时,如果多个线程同时访问共享数据就可能有问题.互斥量是解决多个线程间共享数据的方法之一. 1.互斥量初始化两种方式:(1)静态初始化 #include <pthread ...

  10. 深入理解Eureka - Eureka配置列表

    Eureka包含四个部分的配置 instance:当前Eureka Instance实例信息配置 client:Eureka Client客户端特性配置 server:Eureka Server注册中 ...