版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第第3 3章章 数组、簇数组、簇主要学习内容主要学习内容n 学习如何创建数组和初始化数组;学习如何创建数组和初始化数组;n 学习常用数组函数的使用;学习常用数组函数的使用;n 学习簇的创建;学习簇的创建;n 学习簇函数的使用。学习簇函数的使用。3.1 3.1 数组数组 n数组是相同类型数据元素的集合,这些元素可以数组是相同类型数据元素的集合,这些元素可以是是数值型、布尔型、字符串型数值型、布尔型、字符串型等各种类型。这些等各种类型。这些元素必须同时都是控制件或同时都是指示件。元素必须同时都是控制件或同时都是指示件。n数组可以是一维的,也可以是多维的。数组可以是一维的,也可以是多维的。n对数组
2、元素的访问是通过索引进行的,元素的对数组元素的访问是通过索引进行的,元素的索索引值从引值从0开始开始,最大索引值为,最大索引值为n-1,每一个数组元,每一个数组元素有唯一的一个索引值,通过索引可访问每一个素有唯一的一个索引值,通过索引可访问每一个数组元素。数组元素。举例举例n一个简单的一维数组,在这个数组中含有5个浮点型数据。在数组中第1个元素的索引值为0,第2个元素的索引值为1,依次类推,最后一个元素的索引值是4。 简单的一维数组创建数组的方法创建数组的方法n在前面板创建数组控件在前面板创建数组控件n在框图程序窗口中创建数组常量在框图程序窗口中创建数组常量n其他创建数组的方式其他创建数组的方
3、式n1在前面板创建数组控件在前面板创建数组控件n简单来说,前面板创建数组控件可分为三简单来说,前面板创建数组控件可分为三步:步:n创建数组框的空壳;(包括两部分:索引创建数组框的空壳;(包括两部分:索引框和数据)框和数据)n确定数组类型;确定数组类型;n为数组元素赋值。为数组元素赋值。n举例说明举例说明创建一个多维数组创建一个多维数组有两种方法:有两种方法:n一是在索引框上右键弹出菜单选择一是在索引框上右键弹出菜单选择Add Dimension。同样要减少数组维数,在右键弹出菜单中选择同样要减少数组维数,在右键弹出菜单中选择Remove Dimension即可。即可。n二是利用定位工具通过拖动
4、数组索引边缘的方法来实二是利用定位工具通过拖动数组索引边缘的方法来实现。将鼠标置于数组索引框上时,将出现现。将鼠标置于数组索引框上时,将出现8个小方框,个小方框,用鼠标拖动方框改变索引框大小就可以改变数组维数。用鼠标拖动方框改变索引框大小就可以改变数组维数。n二维数组需要两个索引:行索引和列索引。同样三维二维数组需要两个索引:行索引和列索引。同样三维数组需要数组需要3个索引,个索引,n维数组需要维数组需要n个索引。个索引。2在框图程序窗口中创建数组常量在框图程序窗口中创建数组常量n在框图程序窗口中创建数组常量最一般的方法类似于在框图程序窗口中创建数组常量最一般的方法类似于在前面板上创建数组。在
5、前面板上创建数组。n从功能模板下的从功能模板下的Array子模板选择子模板选择Array Constant,将其放置在框图程序中;将其放置在框图程序中;n选择数据常量对象(如数值常数、布尔常数或字符串选择数据常量对象(如数值常数、布尔常数或字符串常数放置入数组框中;常数放置入数组框中;n 为数组元素赋值。为数组元素赋值。3. 其他创建数组的方式其他创建数组的方式n(1) 利用数组函数可以创建数组,如使用利用数组函数可以创建数组,如使用String to Byte Array功能函数将字符串转化功能函数将字符串转化为单字节整型数组;为单字节整型数组; n(2)某些)某些VI的输出参数是数组;的输
6、出参数是数组;n(3)利用程序结构产生数组,如循环的自动)利用程序结构产生数组,如循环的自动索引。索引。3.1.2 3.1.2 利用循环的自动索引功能创建利用循环的自动索引功能创建数组数组nFor Loop和和While Loop结构都支持自动索引的功结构都支持自动索引的功能,所以都可以在它们的边界自动索引数组或积聚能,所以都可以在它们的边界自动索引数组或积聚数组。数组。n若循环自动索引功能打开,当将一个外部任意维数若循环自动索引功能打开,当将一个外部任意维数的数组源与循环图框的输入通道连接时,则从第一的数组源与循环图框的输入通道连接时,则从第一个数组元素开始,一次索引一个元素进入循环体,个数
7、组元素开始,一次索引一个元素进入循环体,即循环体将与输入通道连接的二维数组索引为一维即循环体将与输入通道连接的二维数组索引为一维数组,将一维数组索引为单位标量元素。数组,将一维数组索引为单位标量元素。n在循环边框的输出通道则执行相反的操作。在循环边框的输出通道则执行相反的操作。 例3.1 利用For Loop创建一维数组。n每一次循环产生一个新的数组元素,循环结束以后,每一次循环产生一个新的数组元素,循环结束以后,产生一个含有产生一个含有5个元素的一维数组,数组自动传输到指个元素的一维数组,数组自动传输到指示器。(若自动索引的功能关闭,读者自己比较结果)示器。(若自动索引的功能关闭,读者自己比
8、较结果) 例3.2 利用For Loop创建二维数组。n使用两个使用两个For循环,把其中一个循环嵌套在另一个循环循环,把其中一个循环嵌套在另一个循环之中,可以生成一个二维数组。外层循环产生行元素,之中,可以生成一个二维数组。外层循环产生行元素,而内层产生列元素。如图,两个而内层产生列元素。如图,两个For Loop自动索引一自动索引一个个3行行4列的二维数组的框图程序和前面板。列的二维数组的框图程序和前面板。例3.3 利用自动索引计算数组元素的平方和。 在框图程序中将一个一维数组(在框图程序中将一个一维数组(5个元素)与自动索引有效的个元素)与自动索引有效的For Loop左边框连接(此时边
9、界上的小方块是空心的),并在循环左边框连接(此时边界上的小方块是空心的),并在循环边界创建一对移位寄存器。利用循环的自动索引特性,在循环过程边界创建一对移位寄存器。利用循环的自动索引特性,在循环过程中将数组元素逐个引入框内,通过移位寄存器对引入的数组元素逐中将数组元素逐个引入框内,通过移位寄存器对引入的数组元素逐次执行累加和运算,循环次数取决于输入的数组元素个数。设置移次执行累加和运算,循环次数取决于输入的数组元素个数。设置移位寄存器的初始值为位寄存器的初始值为0 。3.1.3 3.1.3 数组函数(数组函数(2323个)个)n1数组大小函数数组大小函数Array Size:用于访问数组的大小
10、。n 例例3.4 Array Size函数的使用。(一维数组和二维数组)n2索引数组函数索引数组函数Index Array:用于访问数组中指定位置的元素。 例例3.5 Index Array函数的使用。访问一维数组索引值为2的数组元素 索引二维数组时:索引二维数组时:n当连接二维数组时,它的索引端口自动变为当连接二维数组时,它的索引端口自动变为2个,上面一个个,上面一个是行索引是行索引index(row),下面一个是列索引,下面一个是列索引disabled index(col)。列索引默认为不索引,所以端口形状为空心。列索引默认为不索引,所以端口形状为空心的。假如给这个端口连接一个索引值,端口
11、形状自动变为的。假如给这个端口连接一个索引值,端口形状自动变为实心的。实心的。n连线完成后,哪一个索引值不连线就自动成为空心的不索连线完成后,哪一个索引值不连线就自动成为空心的不索引状态。行或列有一项不索引,那么二维数组就只能索引引状态。行或列有一项不索引,那么二维数组就只能索引出一维数组,相应的输出参数也变为出一维数组,相应的输出参数也变为subarray。nIndex Array函数允许多次索引,也就可以由多个输出参函数允许多次索引,也就可以由多个输出参数。数。n访问访问2维数组中行索引号为维数组中行索引号为2、列索引号为、列索引号为1的元素;以及的元素;以及行索引号为行索引号为3、列索引
12、号为、列索引号为0的元素。的元素。 n3替换数组元素函数替换数组元素函数Replace Array Subset:用于用于替换定位后的元素,在为数组元素定位的方法上与替换定位后的元素,在为数组元素定位的方法上与Index Array函数是完全一致的。函数是完全一致的。 n例例3.6 Replace Array Subset函数的使用。函数的使用。 用此函数将原来数组的第用此函数将原来数组的第2行替换为新的元素,新元行替换为新的元素,新元素为(素为(1,2,3,4),将第),将第3行第行第3列的元素列的元素33替换替换为为100。n4插入数组函数插入数组函数Insert Into Array:在
13、原数组在原数组的指定位置插入若干行或若干列的数据。这个位的指定位置插入若干行或若干列的数据。这个位置由函数提供的索引行或索引列数据端口提供,置由函数提供的索引行或索引列数据端口提供,被插入的数据由被插入的数据由new element/subarray数据端数据端口定义。口定义。 n 例例3.7 Insert Into Array函数的使用。函数的使用。 在原数组的第在原数组的第2行插入行插入1行新元素,新元素为行新元素,新元素为4个个0组成的一维数组;和在原数组的第组成的一维数组;和在原数组的第2行插入行插入2行新行新元素。元素。 n5数组中删除元素函数数组中删除元素函数Delete From
14、 Array:用来从一个数组中删除一些元素。其中用来从一个数组中删除一些元素。其中n参数参数length用于确定删除行或者列的数量参数;用于确定删除行或者列的数量参数;nindex(row)和和index(col)用来确定被删除的行用来确定被删除的行或列的位置;或列的位置;n输出数据端口输出数据端口array w/ subset deleted和和deleted portion则分别对应于删除后的数组和则分别对应于删除后的数组和被删除的部分。被删除的部分。 例3.8 Delete From Array函数的使用。n将原数组的第将原数组的第一列删除。一列删除。 n6初始化数组初始化数组Initi
15、alize Array:用于创建一用于创建一个所有元素全部相同的数组。个所有元素全部相同的数组。 函数函数element端的输入参数定义了数组的类型,端的输入参数定义了数组的类型,并且为每一个元素初始化为相同数值,数组长并且为每一个元素初始化为相同数值,数组长度由维长(度由维长(Dimension Size)决定,为了创)决定,为了创建和初始化多维数组,选择建和初始化多维数组,选择Add Dimension 或使用位置工具向下拖动节点一角。或使用位置工具向下拖动节点一角。 例3.9 Initialize Array函数的使用。一维数组二维数组n7构建数组函数构建数组函数Build Array:
16、完成用数据成完成用数据成员构建数组的过程,这个函数不仅可以构建一员构建数组的过程,这个函数不仅可以构建一维数组和多维数组,而且可以拼接数组维数组和多维数组,而且可以拼接数组(注意注意函数的每个输入只能是标量和数组函数的每个输入只能是标量和数组)。n在在Build Array函数创建之初,只带有一个标函数创建之初,只带有一个标量输出端,要添加更多的输入,可在函数左侧量输出端,要添加更多的输入,可在函数左侧弹出菜单选择弹出菜单选择Add Input项,或是用位置工具项,或是用位置工具向下拖动节点的一角,添加所需要数量的输入。向下拖动节点的一角,添加所需要数量的输入。删除的方法类似。删除的方法类似。
17、 例3.10 构建数组函数的使用。n分别用一个元素构成一个一维数组分别用一个元素构成一个一维数组(a)、用两个元素构成一、用两个元素构成一维数组维数组(b)、用两个一维数组构成一个二维数组、用两个一维数组构成一个二维数组(c)、用两、用两个一维数组拼接成一个新的一维数组个一维数组拼接成一个新的一维数组(d)。 (a)(b)(c)(d)n在该函数上右键弹出菜单选择在该函数上右键弹出菜单选择Concatenate Inputs项,则函数项,则函数会将两个数组按输入顺序合并成一个一维数组输出。另外注意框会将两个数组按输入顺序合并成一个一维数组输出。另外注意框图程序中两种不同输出时函数图标及输出连线的
18、区别。图程序中两种不同输出时函数图标及输出连线的区别。n构建数组函数输入端口功能的转换如图。构建数组函数输入端口功能的转换如图。n8提取子数组函数提取子数组函数Array Subset:用于从一个数组用于从一个数组中提取出维数与它相等或比它少的一个数组。中提取出维数与它相等或比它少的一个数组。n 例例3.11 提取子数组函数的使用。提取子数组函数的使用。9 9一维数组操作函数一维数组操作函数 n 轮转一维函数轮转一维函数Rotate 1D Array 根据输入的轮转系数根据输入的轮转系数n重新排列一维数组元素。若重新排列一维数组元素。若n为正为正数,将数组最后面的数,将数组最后面的n个元素轮转
19、到最前面;若个元素轮转到最前面;若n为负数,为负数,将数组最前面的将数组最前面的n个元素轮转到最后面。个元素轮转到最后面。 n 倒置一维数组倒置一维数组Reverse 1D Array 将一维数组所有元素的顺序首尾颠倒将一维数组所有元素的顺序首尾颠倒。n查找一维数组查找一维数组Search 1D Array 在一维数组中从在一维数组中从start index指定的位置开始指定的位置开始寻找寻找element参数指定的元素。找到了就返回参数指定的元素。找到了就返回它的索引值,找不到就返回它的索引值,找不到就返回1。 n 分离一维数组分离一维数组Split 1D Array 将一维数组由将一维数组
20、由index参数指定的位置开始分离为参数指定的位置开始分离为两个子数组。两个子数组。 n一维数组排序一维数组排序Sort 1D Array 将一维数组按升序排列。将一维数组按升序排列。 1010数组极值函数数组极值函数Array Max & MinArray Max & Minn该函数从一个数组中找到最大值和最小值,以及它们的位置索该函数从一个数组中找到最大值和最小值,以及它们的位置索引值。如果有多个相同的极值就给出最前面一个索引值。引值。如果有多个相同的极值就给出最前面一个索引值。n例例3.12 数组极值函数的使用。求一个含有数组极值函数的使用。求一个含有5个元素的一维数个元
21、素的一维数组的极大值和极小值。组的极大值和极小值。 3.2 3.2 簇(簇(ClustersClusters)n簇是一种数据结构簇是一种数据结构,一个簇就是一个由若干不同数,一个簇就是一个由若干不同数据类型的元素组成的集合体,类似于据类型的元素组成的集合体,类似于C语言中的结语言中的结构体,可以把簇想象成一束电缆,在电缆中的每一构体,可以把簇想象成一束电缆,在电缆中的每一根导线就是簇中的一个不同的数据元素。根导线就是簇中的一个不同的数据元素。n簇的成员可以是任意的数据类型,但和数组类似,簇的成员可以是任意的数据类型,但和数组类似,必须同时都是控制件或同时都是指示件必须同时都是控制件或同时都是指
22、示件。n簇的成员有一种逻辑上的顺序这是簇的成员有一种逻辑上的顺序这是由它们放进簇的由它们放进簇的先后顺序先后顺序决定的,与它们在簇中的摆放位置无关。决定的,与它们在簇中的摆放位置无关。 使用簇的好处使用簇的好处n1把框图程序中不同位置,不同数据类型的把框图程序中不同位置,不同数据类型的多个数据组合在一起,减少了连线,简化了流多个数据组合在一起,减少了连线,简化了流程;程;n2子程序有多个不同数据类型的参数输入输子程序有多个不同数据类型的参数输入输出时,把它们组合成一个簇,可以减少连接板出时,把它们组合成一个簇,可以减少连接板上端口的数量;上端口的数量;n3某些控件和函数必须使用簇这样的数据类某
23、些控件和函数必须使用簇这样的数据类型参数。型参数。3.2.1 簇的创建n簇的创建方法与数组类似,可通过三种方法来创建。n1 1在前面板创建簇;(演示)在前面板创建簇;(演示)n2 2在框图程序创建中创建簇常量;在框图程序创建中创建簇常量;( (演演 示)示)n3 3用簇函数创建簇。用簇函数创建簇。3.2.2 3.2.2 簇函数簇函数 在在LabVIEW功能模板上共有九个簇函数,功能模板上共有九个簇函数,下面介绍几个主要函数及它们的应用。下面介绍几个主要函数及它们的应用。1 1簇解包函数簇解包函数UnbundleUnbundle Unbundle函数用于从簇中提取单个元函数用于从簇中提取单个元素
24、值,输出元素按在簇中编号顺序从上素值,输出元素按在簇中编号顺序从上到下依次排列。到下依次排列。 例例3.153.15 访问簇中各个元素值。n在前面板创建了一个包含在前面板创建了一个包含3个控件的簇对象,在框图程序窗个控件的簇对象,在框图程序窗口中口中Unbundle函数刚放入时,有一个输入端口和两个输出函数刚放入时,有一个输入端口和两个输出端口,当将簇端子与端口,当将簇端子与Unbundle函数输入端连接,该函数输函数输入端连接,该函数输出端口自动与簇元素匹配,在函数的各出端口自动与簇元素匹配,在函数的各Component输出端输出端口右键弹出菜单,选择口右键弹出菜单,选择Create Ind
25、icator,可将各个元素解,可将各个元素解包出来送前面板显示。包出来送前面板显示。2 2合成簇函数合成簇函数BundleBundlenBundleBundle函数有两个基本用法:函数有两个基本用法:可以将各个不同数据可以将各个不同数据类型的数据组成一个簇;或者修改给定簇中的某一类型的数据组成一个簇;或者修改给定簇中的某一个元素值。个元素值。nBundle函数中函数中Component端口的个数可以增加端口的个数可以增加或者删除,方法是用位置工具向下拖动节点一角或或者删除,方法是用位置工具向下拖动节点一角或在节点左侧弹出菜单选择在节点左侧弹出菜单选择Add Input或或Remove Inpu
26、t。但其个数必须与簇中元素的个数一致。但其个数必须与簇中元素的个数一致。例3.16 Bundle函数的使用。n在前面板放置一个字符串控制件和两个数值型控制件,在前面板放置一个字符串控制件和两个数值型控制件,在框图程序中将它们对应的端子与在框图程序中将它们对应的端子与Bundle函数输入端函数输入端自上而下连线(为簇中的每一个元素赋值),组成一自上而下连线(为簇中的每一个元素赋值),组成一个含有个含有3个元素的混合型控制簇,簇中元素的编号顺序个元素的混合型控制簇,簇中元素的编号顺序与输入数据的顺序一致。在与输入数据的顺序一致。在Bundle函数输出端弹出菜函数输出端弹出菜单,选择单,选择Crea
27、teIndicator,将,将output cluster标标签改写为签改写为“参数参数”,运行,运行VI。 例3.17 修改簇中某些元素的值。nBundleBundle函数除了左侧输入端子外,位于节点中函数除了左侧输入端子外,位于节点中间还有一个簇(间还有一个簇(clustercluster)输入端子。有时需)输入端子。有时需要输入或修改源簇中某个元素的值,又不希望要输入或修改源簇中某个元素的值,又不希望影响其他元素的值,其中一种简便方法就是使影响其他元素的值,其中一种简便方法就是使用节点的中间端子。用节点的中间端子。n本例中在前面板创建一个名为本例中在前面板创建一个名为“参数参数”的簇控件
28、,包的簇控件,包含信号、幅值和频率三个簇元素,现通过前面板修改含信号、幅值和频率三个簇元素,现通过前面板修改幅值元素值,而使簇中其他元素值保持不变。幅值元素值,而使簇中其他元素值保持不变。n在框图程序中,将需要修改的元素与函数对应输入端在框图程序中,将需要修改的元素与函数对应输入端子连接,将原有的簇连接到参数输入端,输入端口自子连接,将原有的簇连接到参数输入端,输入端口自动与这个簇的元素匹配。动与这个簇的元素匹配。 3 3按名称解包簇成员函数按名称解包簇成员函数UnbundleUnbundle By Name By NamenUnbundle By Name函数按指定的成员名称从簇中提取函数按指定的成员名称从簇中提取成员。成员。 n该函数默认只有一个输出端口,当它的输入端口连接了该函数默认只有一个输出端口,当它的输入端口连接了一个簇,输出端口就显示出簇中第一个成员的名称;一个簇,输出端口就显示出簇中第一个成员的名称;n向下拖动节点一角或在节点输出端口弹出菜单可增加端向下拖动节点一角或在节点输出端口弹出菜单可增加端口,从而可看到簇元素名的列表,可在列表中或右击名口,从而可看到簇元素名的列表,可在列表中或右击名称弹出菜单选择称弹出菜单选择Select Item项,选择访问成员。项,选择访问成员。n该函数允许多次访问一个成员。引用簇成员时,成员必该函数允许多次访问一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度电子商品退换货服务协议承诺书
- 2025至2030年中国家庭防盗主动红外栅栏数据监测研究报告
- 2025年纯玻璃钢管项目可行性研究报告
- 2025年瘟曲立克悬浮剂项目可行性研究报告
- 2025年微孔薄膜复合滤袋项目可行性研究报告
- 2025至2030年镀银反射片项目投资价值分析报告
- 2025至2030年特殊网板项目投资价值分析报告
- 2025至2030年全涤丝棉毛布项目投资价值分析报告
- 二零二五年度城市综合体项目三方房产抵债协议书3篇
- 二零二五年度新能源技术研发居间代理协议3篇
- “5E”教学模式下高中数学教学实践研究
- 急救药品知识培训内容
- 浙江省杭州市2024-2025学年高三上学期一模英语试题(含解析无听力原文及音频)
- 2024年湖南高速铁路职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 人口分布 高一地理下学期人教版 必修第二册
- 部编版六年级下册语文第3单元习作例文+习作PPT
- 四年级上册英语试题-Module 9 Unit 1 What happened to your head--外研社(一起)(含答案)
- 子宫内膜异位症诊疗指南
- 《高级计量经济学》-上课讲义课件
- 玩转数和形课件
- 护理诊断及护理措施128条护理诊断护理措施
评论
0/150
提交评论