版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六讲 数组与簇 6.1 6.1 数组数组 数组是数组是LabVIEWLabVIEW常用的数据类型之一。一个数组可以是一常用的数据类型之一。一个数组可以是一维或者多维,如果必要,每维最多可有维或者多维,如果必要,每维最多可有2 231311 1个元素。可以通个元素。可以通过数组索引访问其中的每个元素。索引的范围是过数组索引访问其中的每个元素。索引的范围是0 0到到n-1n-1。数组。数组的元素可以是数据、字符串等,但所有元素的数据类型必须一的元素可以是数据、字符串等,但所有元素的数据类型必须一致。致。 6.1.1 6.1.1 数组的组成与创建数组的组成与创建 1.1.数组的组成数组的组成 由索
2、引、数据和数据由索引、数据和数据 类型构成。其中数据类型构成。其中数据 类型隐含在数据中。类型隐含在数据中。第六讲第六讲 数组、簇数组、簇 第六讲 数组与簇 2. 2. 数组的创建数组的创建从前面板上创建数组:从前面板上创建数组:打开前面板,在控件打开前面板,在控件新式新式数数组,矩阵与簇组,矩阵与簇数组,如图。数组,如图。 第六讲 数组与簇 再在里面放置一个数值输入控件即可,如图:第六讲 数组与簇 如果要显示更多的数组成员数组成员,在工具选项板上选择定位工具,在数组的边框停滞,当出现网状拐角后就可以拖动增加或减少显示区域。如图:如果要增加或减少数组的维维数数,可以在索引框的快捷菜单上执行,如
3、图:第六讲 数组与簇 增加后如图:对于二维数组来说,索引框中上一个为行索引,下一个为列索引。第六讲 数组与簇 2程序框图上创建数组:程序框图上创建数组:在程序框图上创建数组和在前面板上创建数组有点类似,也首先创建一个外壳,然后再放入数值型常量,枚举或环形常量,字符串型常量以及布尔型常量等。刚刚放入常量后,所有的数组成员显示为灰色,可以用操作工具依次给它们赋值,赋值范围以外的数组成员保持灰色不变。如果跳过一些数组成员给后面的成员赋值,则前面的成员自动赋一个系统默认的值。 先在程序框图上放置一个数组常量,位于函数编程数组数组常量,如图:第六讲 数组与簇 然后再往里放入一个数值常量,完成后如图:第六
4、讲 数组与簇 6.1.26.1.2数组函数数组函数 对一个数组进行操作,无非是求数组的长度、取出数组对一个数组进行操作,无非是求数组的长度、取出数组中的元素、替换数组中的元素或初始化数组等各种运算。中的元素、替换数组中的元素或初始化数组等各种运算。第六讲 数组与簇 1.1.数组大小数组大小Array SizeArray Size函数函数 返回输入数组中的元素个数。返回输入数组中的元素个数。第六讲 数组与簇 2.2.索引数组索引数组 Index Array Index Array函数函数 用于访问数组中的某个元素。用于访问数组中的某个元素。下图显示了一个索引函数的例子,它用于访问下图显示了一个索
5、引函数的例子,它用于访问数组中的第三个元素。数组中的第三个元素。第六讲 数组与簇 将一个二维数组与将一个二维数组与Index ArrayIndex Array函数相连,函数相连,Index Index ArrayArray就会含就会含2 2个索引端子。将一个三维数组与个索引端子。将一个三维数组与Index Index ArrayArray函数相连,函数相连,Index ArrayIndex Array就会含就会含3 3个索引端子。余类个索引端子。余类推。推。 可以使用的索引端的符号是一个黑方快,被禁止使可以使用的索引端的符号是一个黑方快,被禁止使用的索引端(用的索引端(Disable Inde
6、xingDisable Indexing)是一个空心的小方框。)是一个空心的小方框。 第六讲 数组与簇 可以从一个三维数组中提取一个二维数组,方法是可以从一个三维数组中提取一个二维数组,方法是禁止两个索引端子,或者通过禁止一个索引端子提取一禁止两个索引端子,或者通过禁止一个索引端子提取一个一维数组。下图显示了从三维数组提取数组的各种方个一维数组。下图显示了从三维数组提取数组的各种方法。法。第六讲 数组与簇 3.3.数组子集数组子集Array SubsetArray Subset函数函数 选取数组或者矩阵的某个部分。选取数组或者矩阵的某个部分。第六讲 数组与簇 该函数可以返回从某个指针开始的部分
7、数组,并包该函数可以返回从某个指针开始的部分数组,并包括了长度元素。下图显示了一些数组子集的例子,注意,括了长度元素。下图显示了一些数组子集的例子,注意,数组索引从数组索引从0 0开始。开始。第六讲 数组与簇 4.4.替换数组元素替换数组元素Replace Array ElementReplace Array Element函数函数 替换数组中的某个元素。替换数组中的某个元素。第六讲 数组与簇 5.5.改变数组维数改变数组维数Reshape ArrayReshape Array函数函数 改变输入数组的维数。改变输入数组的维数。第六讲 数组与簇 6.6.初始化数组初始化数组Initialize
8、ArrayInitialize Array函数函数 对数组进行初始化,数组中所有的元素相同。对数组进行初始化,数组中所有的元素相同。第六讲 数组与簇 7.7.建立数组建立数组Build ArrayBuild Array函数函数 建立一个新数组的维数。建立一个新数组的维数。第六讲 数组与簇 8.8.移位一维数组移位一维数组Rotate 1D ArrayRotate 1D Array函数函数 将一维数组的最后将一维数组的最后n n各元素移至数组前面。各元素移至数组前面。第六讲 数组与簇 9.9.排序一维数组排序一维数组Sort 1D ArraySort 1D Array函数函数 将一维数组中的数据
9、按升序排列。将一维数组中的数据按升序排列。第六讲 数组与簇 10.10.颠倒一维数组颠倒一维数组Reverse 1D ArrayReverse 1D Array函数函数 将一维数组的元素前后颠倒。结合将一维数组的元素前后颠倒。结合Sort 1D ArraySort 1D Array函函数,可实现降序排列。数,可实现降序排列。第六讲 数组与簇 11.11.转置二维数组转置二维数组Transpose 2D ArrayTranspose 2D Array函数函数 将二维数组进行转置输出。将二维数组进行转置输出。第六讲 数组与簇 12.12.搜索一维数组搜索一维数组Search 1D ArraySea
10、rch 1D Array函数函数 搜索指定元素在一维数组中的位置。搜索指定元素在一维数组中的位置。第六讲 数组与簇 13.13.求数组的最大值和最小值求数组的最大值和最小值Array Max & MinArray Max & Min函数函数 返回数组中的最大值和最小值,以及它们在数组中返回数组中的最大值和最小值,以及它们在数组中的位置。的位置。第六讲 数组与簇 14.14.截断一维数组截断一维数组Split 1D ArraySplit 1D Array函数函数 将一维数组在指定位置截断,分成两个一维数组。将一维数组在指定位置截断,分成两个一维数组。当索引位置小于当索引位置小于0
11、 0时,第一个子数组为空;当索引位置时,第一个子数组为空;当索引位置大于数组长度时,第二个子数组为空;大于数组长度时,第二个子数组为空;第六讲 数组与簇 15.15.一维数组的插值一维数组的插值Interpolate 1D ArrayInterpolate 1D Array函数函数 根据给定的小数索引值,确定对应的数组元素值。根据给定的小数索引值,确定对应的数组元素值。第六讲 数组与簇 16.16.一维数组的阈值一维数组的阈值Threshold 1D ArrayThreshold 1D Array函数函数 是线性插值的逆过程,根据给定的数值,确定对应是线性插值的逆过程,根据给定的数值,确定对应
12、的索引值。的索引值。第六讲 数组与簇 17.17.插入一维数组插入一维数组Interleave 1D ArrayInterleave 1D Array函数函数 将输入端口的一维数组插入到输出的一维数组中。将输入端口的一维数组插入到输出的一维数组中。插入的顺序为:按从上到下的原则,依次取出输入数组插入的顺序为:按从上到下的原则,依次取出输入数组的第的第0 0各元素,放入输出数组中;然后是第各元素,放入输出数组中;然后是第1 1 各元素,各元素,依此类推。依此类推。第六讲 数组与簇 18.18.拆分一维数组拆分一维数组Decimate 1D ArrayDecimate 1D Array函数函数 是
13、插入一维数组是插入一维数组Interleave 1D ArrayInterleave 1D Array函数的反运算。函数的反运算。将输入的一维数组拆分为多个一维数组。拆分原则:第将输入的一维数组拆分为多个一维数组。拆分原则:第1 1个子数组:元素为输入数组的个子数组:元素为输入数组的0,n,2n,3n, 0,n,2n,3n, 第第2 2个子数组:元素为输入数组的个子数组:元素为输入数组的0,n+1,2n+1,3n+1, 0,n+1,2n+1,3n+1, 第第3 3个子数组:依此类推。个子数组:依此类推。第六讲 数组与簇 第六讲 数组与簇 例一:例一:设计步骤如下:创建一个For循环,循环次数定
14、为100次在数学函数中调用Sinc函数,重复端子作为输入,输出用一个波形图表和一个数组显示。如图:第六讲 数组与簇 例二:创建一个二维数组例二:创建一个二维数组第六讲 数组与簇 现在已经有两组一维数组了,可以使用创建数组函数就可以把他们创建为二维数组,在一个波形图中显示,如图:第六讲 数组与簇 可以用鼠标对该函数进行拉伸操作,即可有两个输入端子了。程序框图如图:第六讲 数组与簇 前面板运行结果如图:第六讲 数组与簇 例三:例三:初始化和分离数组:利用For循环的自动索引功能从一个输入数组中依次抽取各个元素,如果是大于0的数则添加到正数数组,如果是小于0的则添加到负数数组。并分别计算两个数组中各
15、自有多少个元素。如图所示便是程序框图第六讲 数组与簇 下图是在选择结构中为“假”时的情景第六讲 数组与簇 其中一共用到了三个数组函数,一个初始化函数,一个创建函数,一个数组大小函数,运行时前面板如图:第六讲 数组与簇 6.1.3 6.1.3 数组的特点数组的特点 1.LabVIEW1.LabVIEW会自动确定会自动确定数组长度,最多可达数组长度,最多可达(2 231311 1)个元素。)个元素。 。 2.2.数组中元素的数据类型必须相同。数组中元素的数据类型必须相同。第六讲 数组与簇 6.2 6.2 簇簇 簇是簇是LabVIEWLabVIEW中一个比较特别的数据类型,它可以将几种不同中一个比较
16、特别的数据类型,它可以将几种不同的数据类型集中到一个单元中形成一个整体。的数据类型集中到一个单元中形成一个整体。 如有关一个学生的信息有:学号、姓名、性别、年龄、成绩和如有关一个学生的信息有:学号、姓名、性别、年龄、成绩和家庭地址等。如将这些项目分别定义为相互独立的简单变量,不家庭地址等。如将这些项目分别定义为相互独立的简单变量,不能反映它们之间的内在联系。而应当把它们组合成一个组合项,能反映它们之间的内在联系。而应当把它们组合成一个组合项,这种数据结构就是簇。这种数据结构就是簇。 上述数据的上述数据的C C语言结构描述:语言结构描述: 上述数据的上述数据的LabVIEWLabVIEW结构描述
17、:结构描述: struct studentstruct student int num; int num; char name20; char name20; char sex; char sex; int int age; age; float score; float score; char addr30; char addr30; 第六讲 数组与簇 簇是一种类似数组的数据结构,用于分组数据。簇和数组有着重要的差别,其中一个重要差别是,簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型。例如,一个数组可以包含10个数字指示器,一个簇却可以包含一个数字控件,一个开关和一个字符串控件。
18、尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的方法同时访问其中部分或全部元素,而不是通过索引一次访问一个元素。簇和数组的另一个差别是簇具有固定的大小。 簇通常用于将出现在框图上的有关数据元素分组管理。因为簇在框图中仅用唯一的连线表示,所以对于减少连线混乱和子VI需要的连接器端子个数,使用簇有着积极的效果。可以将簇看做是一捆连线,线缆中每一个连线表示簇的不同元素。在框图上,只有当簇具有相同类型,相同元素数量和相同元素顺序时,才可以将簇的子端连接。 第六讲 数组与簇 6.2.1 6.2.1 簇的簇的创建创建 簇的创建框位于前面板中的控件簇的创建框位于前面板中的控件新式新式数组数组
19、, ,矩阵和簇矩阵和簇簇。簇。第六讲 数组与簇 然后就可以往簇的框中添加各种类型的控件了,例如现在要建立一个学生的记录信息,包括学生的姓名,学号,性别和年龄.这就需要在簇外壳里依次放入两个字符串输入控件,一个数字控件和一个布尔控件.如图:第六讲 数组与簇 与数组的创建类似,簇也可以从程序框图中创建,先在程序框图上放置一个簇外壳,然后就可以在簇外壳里放置各种数据类型常数。如图:簇内对象的大小是可以调整的,右击簇边界,在弹出的快捷菜单中可以选择各种调节操作,如图: 第六讲 数组与簇 选择调整为匹配大小,即可缩小簇的边框,如图为调整后的结果: 簇结构中的元素排列是按照它们放置的先后来排序的,它与簇内
20、元素的位置无关。放入簇内的第一个元素序号为0,第二个元素序号是1,依次向下排列。如果删除了一个元素,序号将重新自动调整。簇的排序很重要,它直接影响着后面将要介绍的“捆绑”以及“接触捆绑”函数的端口顺序,如果要将一个簇与另一个簇连接,这两个簇的序和类型必须相同。 第六讲 数组与簇 如果想要改变簇内元素的排列顺序,可以右击簇结构的边框,在弹出的快捷菜单中执行“重新排序簇中控件”,如图:第六讲 数组与簇 这时鼠标会变成一个带“”号的手柄箭头,黑框指出新设置的排列序号,白框表示原先的排列序号,可以改变标题栏上的“单击设置”内容,然后单击簇元素即可设置新的序号。设置完毕后单击工具栏上的“ ”按钮确定更改
21、,如果想恢复原先设定值,单击“ ”取消设置。 6.2.2 簇函数簇函数 簇函数,主要是访问簇中的各个元素,或由不同类型簇函数,主要是访问簇中的各个元素,或由不同类型但相互关联的数据组成簇。但相互关联的数据组成簇。簇函数的模版如图:第六讲 数组与簇 簇函数中最主要的就是构造打包生成簇的“捆绑”函数,还有从簇中解包提取簇中元素的“解除捆绑”函数。它们是根据簇成员的顺序来进行操作的,这也说明了簇内成员顺序排列的重要性。例1. 创建簇,解包簇,再打包簇该例的目的是学习使用簇的两个基本函数,如图:首先放置一个簇外壳到前面板上,将标签内容改为“输入簇”簇函数举例:簇函数举例:第六讲 数组与簇 在簇外壳中依
22、次放入字符串控件“Name”,布尔控件“Sex”,数字输入控件“Pay”以及字符串控件“Address”,通过这些簇元素来组成某一公司内一名员工的工资记录。如图:切换到程序框图,放置一个“解除捆绑”解包簇函数,函数刚放入时,它的右侧只有2个输出端口,当输入端口与“输入簇”端子相连后,右侧端口会自动增加为簇元素的数目,端口从上向下排列的顺序与簇内元素的放置顺序相对应,并且数据类型也是与簇元素数据类型相对应。如图:第六讲 数组与簇 同样放置一个“捆绑”打包簇函数,用定位工具将输入端口的数目增加到4个,依次将它们与解包出来的4个簇元素相连,表示又把它们进行打包生成一个新的簇。在输出端口创建一个簇显示
23、器,把标签改为“输出簇”,如图: 第六讲 数组与簇 例例2. 替换簇成员替换簇成员该例的目的是学习使用“按名称捆绑” 函数来替换簇内的某些元素。 1新建一个VI,在前面板上创建一个簇外壳,依次向簇内添加一个数字输入控件,一个布尔控件,一个字符串输入控件,如图: 第六讲 数组与簇 2打开程序框图,选择“按名称捆绑”函数,它的功能是按照名称来替换簇成员的值。在函数刚放入时,它的左侧只有一个输入端口,将函数的“输入簇”端口与创建的簇端子相连之后,左侧端口会显示簇内第一个元素的名称数值,用操作工具单击它可以选择其他的簇成员。如图:第六讲 数组与簇 3在前面板上创建一个输入控件,将标签改为“输入数字”,
24、在程序框图将它与“数值”端口相连,表示将用它来替换簇元素。如图:第六讲 数组与簇 4在“按名称捆绑”函数后面创建输出簇,完成后即可运行程序,如图: 第六讲 数组与簇 例例3. 插接生成簇数组插接生成簇数组该例的目的是学习使用“索引与捆绑簇数组” 函数插接簇数组函数来生成一个簇数组。 1新建一个VI,打开程序框图,放置一个该函数,刚放入时它只有一个输入的端口,用定位工具拖拉它为3个输入端口。2在程序框图上放置三个数组外壳,然后分别添加字符串常量,数值常量和布尔常量,建立三个数组,如图:然后给他们赋如图所示的值,如图:第六讲 数组与簇 然后连线,并创建显示控件,如图:运行,结果如图:说明:该函数从输入的3个数组中依次取值,相同索引值的数据被攒成一个簇,所有的簇构成一个一维数组。插接成的数组的长度与所有输入数组中长度最短的一个相等,多余的数据被丢弃。第六讲 数组与簇 4. 建立建立“数组的数组数组的数组”学习把一维数组当成一个簇,然后通过建立簇的数组,因为簇数组的每一个成员都是一个簇(即一维数组),从而实现建立“数组的数组”的目的。1先新建一个VI,打开程序框图,放置一个“创建簇数组” 函数,该函数的功能是建立簇的数组,簇数组的每个成员都是一个簇。刚放入程序框图时,函数只有一个输入端口,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年珍珠皂项目可行性研究报告
- 2024至2030年中国幕墙料行业投资前景及策略咨询研究报告
- 2024年插肩半大衣项目可行性研究报告
- 2024年多功能发爆器项目可行性研究报告
- 社会保险体系课程设计
- 2024年中国透析浓缩液市场调查研究报告
- 中国陶瓷茶具市场收益潜力调研及发展前景展望研究报告(2024-2030版)
- 中国铁合金行业发展分析及前景趋势与投资风险研究报告(2024-2030版)
- 中国重芳烃行业应用态势及需求趋势预测研究报告(2024-2030版)
- 中国直流无刷电机控制器行业市场现状分析及竞争格局与投资发展研究报告(2024-2030版)
- 关爱明天普法先行报告材料
- 工程量确认单格式
- 废弃物、废水、废气、噪声管理程序4页
- 浅析专利法第26条第3款和第4款的关联关系
- 动力触探与标准贯入试验实施细则
- 提升机事故案例分析及提升机电控技术PPT课件
- 和易充智能充电系统(PPT课件)
- 校本课程开发方案家乡景区文化避暑山庄
- 抢救病人登记表
- 牙合畸形的早期矫治PPT参考课件
- 施工组织设计(横道图+平面图)
评论
0/150
提交评论