资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
LabVIEW 数 据 类 型数组、簇和波形1概述 数组1.数组是同类型元素的集合。一个数组可以是一 维 或者多维,如果必要,每维最多可有2311个元素 。2.可通过数组索引访问其中的每个元素。索引的 范 围是0到n 1,其中n是数组中元素的个数。 2概述 簇、波形簇(Cluster)是另一种数据类型,它的元素可 以是不同类型的数据。它类似于C语言中的 structure。使用簇可以把分布在流程图中各个 位置的数据元素组合起来,这样可以减少连线 的 拥挤程度。减少子VI的连接端子的数量。 波形(Waveform)可以理解为一种簇的变形, 它不能算是一种有普遍意义的数据类型,但非 常实用。3数组的创建及自动索引 q数组的创建:创建一个数组有两件事要做,首先要建一个数组 的“壳”(shell),然后在这个壳中置入数组元 素(数或字符串等)。 q也可以直接在前面板中创建数组和相应的控制对 象,然后将它们复制或者拖曳到流程图中,创建 对应 的常数。数组作为数据源创建框图4数组控制、常数和显示对象 q通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。q数组元素不能是数组、图表或者图形。5数组功能函数qLabVIEW 提供了很多用于操作数组的功能函数 ,位于FunctionsArray中。其中包括Replace Array Element,、Search 1D Array、Sort 1D Array、 Reverse 1D Array和 Multiply Array Elements等等。q创建数组:Build Array函数(FunctionsArray) ,用于根据标量值或者其他的数组创建一个数组 。q初始化数组(Initialize Array):用于创建所有 元素值都相等的数组。下图中,该功能函数创建 了一个一维数组。 6数组功能函数q利用流程图中的常数对象的值创建和初 始化数组的两种方法 (Build Array?)q左侧的方法是,将5个字符串常数放入一个一维字符串 数组中 q右侧的方法是,将三组数值常数放入三个一维数值数 组,再将这三个数组组成一个二维数组 7数组功能函数q初始化数组(Initialize Array):用于创建所有元素 值都相等的数组q初始化一维数组 q初始化三维数组:如果所有的维长度输入都是0,该 函数会创建一个具有指定数据类型和维数的空数组 8数组功能函数q数组大小,Array Size函数:返回输入 数组中的元素个数 9数组功能函数q数组子集(Array Subset):选 取数组或者矩阵的某个部分 。n该函数可以返回从某个指针开始的部分数组,并包括 了长度元素。下图显示了一些数组子集的例子,注意 ,数组索引从0开始。10数组功能函数q索引数组(Index Array):用于访问数组中 的某个元素。 11数组功能函数q索引数组(Index Array)例子q从二维数组中提取一维数组例子12创建数组功能函数 q使用创建数组函数,把一些元素和输出 组织成一个更大的数组 13多态化组合(标量与数组)q多态化是指一种函数功能,即可以协调 不同格式、维数或者显示的输入数据, 大多数LabVIEW的函数都是多态化的。14自动索引 qFor循环和While循环可以自动地在数组的上下限范围内编索引 和进行累计,该功能称为自动索引。q在启动自动索引功能以后,当把某个外部节点的任何一维元素 连接到循环边框的某个输入通道时,该数组的各个元素就将按 顺序一个一个地输入到循环中。循环会对一维数组中的标量元 素,或者二维数组中的一维数组等编制索引。在输出通道也要 执行同样的工作。q数组元素按顺序进入一维数组,一维数组进入二维数组,依此 类推。 15自动索引q备注: 在默认情况下,对于每个连接到For循环的 数 组都会执行自动索引功能。可以禁止这个功 能 的执行,方法是用鼠标右键单击通道(输入 数 组进入循环的位置),在快捷菜单中选择 Disable Indexing。 16练习1:输入数组使用自动索引q目的:打开并执行一个VI,它将在一个For 循环中使用自动索引功能处理一个数组 。17Case结构为False的流程图18练习2q步骤:1.执行该VI。在输入的八个数中,可以看到4个属 于正数数组,另外4个属于负数数组 。2.从流程图中将一个值为5的常数对象连接到For 循环的计数器端子。执行该 VI。可以看到尽管 输入数组仍然有八个元素,但是3个位于正数数 组,另外2个位于负数数组。这说明,如果设置 了N并开启了自动索引功能,那么实际循环的次 数将取较小的数 。3.关闭该VI,不要保存任何修改。 19簇-创建簇控制和显示 q在前面板上放置一个簇壳(Cluster shell)就创建了一个簇,然后你可以将 前面板上的任何对象放在簇中。 图所示是一个含个Control的 簇。也可以在流程图上用类似 的方法创建簇常数 20簇的序(Order) q簇的元素有一个序,它与簇内元素的位置无 关。簇内第一个元素的序为0,第二个是1, 等等。如果你删除了一个元素,序号将自动 调整。如果你想将一个簇与另一个簇连接, 这两个簇的序和类型必须同一。 q如果想改变簇内元素的序,可在快速菜单中 选择Cluster Order (reorder controls in cluster),这时会出现一个窗口,在该窗口 内可以修改序。 21使用簇与子VI传递数据 q一个VI的连接窗口最大有28个端子,如果你不希望 使用全部28个端子传递数据,这既烦琐又易出错。通 过把控制或显示对象捆绑成一个簇的方法,仅使用一 个端子就可以实现该功能。 q捆绑(Bundle)数据 nBundle功能将分散的元件集合为一个新的簇,或允 许你重置一个已有的簇中的元素。可以用位置工具 拖曳其图标的右下角以增加输入端子的个数。最终 簇的序是取决于被捆绑的输入的顺序。右图中 Bundle图标中部的Claster端子用于用新元素重置 原簇中的元素 q分解(Unbundle)簇 nUnbundle功能是Bundle的逆过程,它将一个簇 分解为若干分离的元件。如果你要对一个簇分解, 就必须知道它的元素的个数。22簇 练习q目的:学习创建簇、分解簇,再捆绑簇 并且在另一个簇中显示其内容 q前面板23簇 练习q流程图24用名称捆绑与分解簇 q有时你并不需要汇集或分解整个簇,而仅仅需要对其中某 些元素操作。这时你可以用名称来捆绑与分解簇。q在Cluster 工具模板中除了Bundle Unbundle 功能外,还提 供有Bundle By Name和Unbundle By Name功能 。qBundle By Name虽可访问你需要的元素,但不能创建新簇 ;它只能重置一个已经存在的簇的元素,同时你必须给 Bundle By Name图标中间的输入端子一个输入以申明要替 换其元素的簇。qUnbundle by name 可返回指定名称的簇元素,不必考虑 簇的序和大小。25数组和簇的互换 q由于LabVIEW中关于数组的操作功能函数多于簇 。将数组变为簇(或者簇变为数组)很方便,其 操作如下图:q例如,前面板上有一个多按钮的簇,你希望颠倒这些按 钮值的序。好了,Reverse 1D Array功能正好可用,但 是它仅可用于数组。这没关系,你可以使用功能Cluster to Array将簇转换为数组,使用Reverse 1D Array切换开 关的值,最后再利用Array to Claster 变换回簇。26
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号