版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3 3章章 数组、簇和波形数组、簇和波形3.1 数组数组 3.2 簇簇 3.3 波形波形 习题习题3 3.1 数数 组组3.1.1 数组的创建数组的创建在LabVIEW中,数组由数据类型、数据索引和数据3部分组成,数据类型隐含在数据中。数组控件数组的创建:u第一步,从Controls模板中创建数组框架;u第二步,定义数组类型:第一种方法:直接将面板上已有的控制器或指示器拖入数组框架内;第二种方法:在空数组框架内右键弹出菜单选择所需类型对象,放置在框架内;图3-3 数组的创建过程图3-4 改变显示数组元素的个数 图3-5 添加数组的维数3.1.3 利用循环结构创建数组利用循环结构创建数组图3
2、-7 使用嵌套的For循环创建二维数组 数组之间的算术运算数组之间的算术运算 LabVIEW一个非常大的优势就是它可以根据输入数据一个非常大的优势就是它可以根据输入数据的类型判断算子的运算方法,即自动实现多态的类型判断算子的运算方法,即自动实现多态 对于加减乘除,数组之间的运算满足下面的规则:对于加减乘除,数组之间的运算满足下面的规则:a) 如果进行运算的两个数组大小完全一样,则将两如果进行运算的两个数组大小完全一样,则将两个数组中索引相同的元素进行运算形成一个新的数个数组中索引相同的元素进行运算形成一个新的数组。组。b) 若大小不一样,则忽略较大数组多出来的部分。若大小不一样,则忽略较大数组
3、多出来的部分。c) 如果一个数组和一个数值进行运算,则数组的每如果一个数组和一个数值进行运算,则数组的每个元素都和该数值进行运算从而输出一个新的数组。个元素都和该数值进行运算从而输出一个新的数组。 图3-8 Array子模板3.1.4 数组函数数组函数1Array Size【例3.1】 求一维数组、二维数组和三维数组的长度。 数组数组长度图3-10 例3.1的前面板和程序框图2Index Array图3-12 添加索引端口【例3.2】 从一个二维数组中取出某一行的所有元素、某一列的所有元素和某一个元素。3Replace Array Subset【例3.3】 替换二维数组中的某一列元素。4Ins
4、ert Into Array 【例3.4】 在二维数组中插入一行元素。5Delete From Array【例3.5】 在一个三维数组中删除指定列数的元素。6Initialize Array 图3-22 例3.6的前面板和程序框图7Build Array u合并多个数组或给数组添加元素,形成一个新数组u两种组合方式:当Concatenate Inputs被选中时,输出appended array是将所有输入连接,其维数与所有输入参数中的最高维数相同。当Concatenate Inputs被关闭时,所有输入参数的维数必须相等,输出比输入高一维。【例3.7】 利用Build Array节点创建数组
5、。图3-24 例3.7的前面板和程序框图8Array Subset从输入数组array中取出由index和length端口指定的元素。图3-26 例3.8的前面板和程序框图 9Rotate 1D Array 将输入的一维数组元素循环右移n个位置,即将最后n个元素移至最前面。【例3.9】 将一维数组循环左移3位和右移3位。10Reverse 1D Array 将输入的一维数组倒序输出,输入数组可以是任意类型的数组。【例3.10】 将一维数组倒序输出。11Search 1D Array从输入的一维数组中检索值为element的元素,由端口start index确定检索的初始位置。如果找到该元素,则
6、返回该元素的索引值,否则返回-1。【例3.11】 在一维数组中检索一个字母的位置。12Split 1D Array将输入的一维数组array从index设置的索引处分成两个一维数组。当index的值小于等于0时,first subarray输出为空;当index的值大于数组长度时,second subarray输出为空。【例3.12】 将一维数组分成两部分。 13Sort 1D Array 将输入的一维数组按照升序排列。【例3.13】 将一维数组按照升序和降序分别排列。14Array Max & Min返回输入任意维数组的最大值和最小值,以及它们在数组中的位置。当数组中有多个元素同为最
7、大值或同为最小值时,只输出第一个值所在的位置。【例3.14】 查找数组中的最大值和最小值 15Transpose 2D Array 将输入的二位数组转置,即求矩阵的转置矩阵。16Interpolate 1D Array 其功能是进行线性插值。【例3.15】 在一维数组中进行线性插值。17Threshold 1D Array 求一维数组的门限值,是线性插值的逆过程。18Interleave 1D Arrays 将输入的一维数组进行插接。首先将所有一维数组的第0个元素按顺序放在输出数组中;再将所有一维数组的第1个元素按顺序放在输出数组中,依次类推。如果输入数组的长度不同,则以最小长度为准对其他数组
8、进行截取。【例3.16】 将3个不同长度的一维数组插接。19Decimate 1D Array实现的功能与Interleave 1D Arrays节点相反。【例3.17】 将一个一维数组分解成多个一维数组。20Reshape Array将n维数组转化成m维数组数出。输出数组的维数由dimension size端口的个数决定。 【例3.18】 将一个二维数组转化为三维数组。3.1.5 多态性多态性多态性(Polymorphism)是LabVIEW的一些函数(如加、减、乘和除)接受不同维数和类型输入的能力。具有这种能力的函数是多态函数,图3-49显示了乘函数的一些多态性的不同组合。图3-48中,第
9、一个组合是两个标量相乘;第二个组合是一个标量和一个一维数组相乘;第三个组合是两个长度不同的一维数组相乘,相乘后的数组维数取较短的一个数组的长度。图3-49 乘函数的多态性组合3.2 簇簇u簇是簇是LabVIEW中比较独特的一个概念,但实际上它就中比较独特的一个概念,但实际上它就对应于对应于C语言等文本编程语言中的结构体变量。语言等文本编程语言中的结构体变量。 3.2.1 簇的创建簇的创建簇的创建和数组的创建类似,首先建立框架,然后向框架中添加元素。簇控制器和指示器的框架位于ControlsAll ControlsArray & Cluster子模板上,簇常量框架位于FunctionsA
10、ll FunctionsCluster子模板上。3.2.2 簇的顺序簇的顺序簇元素按照放入簇框架中的先后顺序排序,并且依次标记为0、1、2、。当从簇中删除元素时,剩余元素的顺序将自动调整。改变簇中已有元素排列顺序的方法是在簇边缘弹出的快捷菜单中选择Record Controls in Cluster,这样进入簇元素顺序的编辑状态。3.2.3 簇的功能函数簇的功能函数1、解包函数(、解包函数(Unbundle)l 该函数将簇解开从而获得簇中各个元素的值。缺省情况下,它会根据输入的簇自动调整输出端子的数目和数据类型,并按照簇内部元素索引的顺序排列。【例3.19】 将一个簇中的元素分别取出。2、打包
11、函数(、打包函数(Bundle)l该函数用来为Cluster中各元素赋值。【例3.20】 将不同数据类型的元素组成一个新簇;替换簇中的某些元素。3、按元素名称解包函数(、按元素名称解包函数(Unbundle By Name)l 普通的解包函数解包后只有将鼠标移到输出端子上才能看到输出元素的名称,程序的可读性不高。该函数可以根据名称有选择的输出簇内部元素。其中元素名称就是指元素的Label。【例3.21】 Unbundle By Name节点应用举例。4、按元素名称打包函数(、按元素名称打包函数(bundle By Name)l 该函数通过簇内部元素名称来给簇内部元素赋值。参考簇是必须的,该函数
12、通过参考簇来获得元素名称。【例3.22】 Bundle By Name节点应用举例。5Build Cluster ArrayBuild Cluster Array节点的图标如图3-65所示,该节点的功能是先将component端口输入的n个参数打包成簇,然后组成元素为簇的一维数组。输入参数可以都是数组,但要求维数必须相等。6Index & Bundle Cluster ArrayIndex & Bundle Cluster Array节点的图标如图3-66所示,输入参数为任意数据类型的一维数组,将输入数组中的元素按照索引组成簇,然后将这些簇组成一维数组输出。【例3.23】 In
13、dex & Bundle Cluster Array节点应用举例。 3.2.4 簇和数组互换簇和数组互换1Cluster To Array输入簇cluster的所有元素必须是相同数据类型,该节点将所有簇元素按照顺序组合成一维数组输出。2Array To Cluster功能与Cluster To Array节点的功能相反,即将输入数组中的元素按顺序打包成簇输出。簇操作函数使用示例簇操作函数使用示例 3.3 波波 形形在信号采集、处理和分析过程中经常使用波形数据类型。波形的结构和簇非常相似,是一种特殊类型的簇。LabVIEW提供了很多功能强大的节点用来处理波形数据。3.3.1 Time S
14、tamp和和VariantTime Stamp是LabVIEW中记录时间的专用数据类型。Time Stamp控制器和指示器位于ControlsAll ControlsNumeric子模板上,Time Stamp Constant位于FunctionsAll FunctionsNumeric子模板上,如图3-70所示。Time Stamp的初始值是0。在Time Stamp对象弹出的快捷菜单中选择Data OperationSet Time and Data,打开对话框,可以在此修改日期和时间。图3-70 Time Stamp控件和常量Variant是一种特殊的数据类型,任何数据类型都可以转化为
15、Variant类型,然后为其添加属性。Variant类型的操作节点都在FunctionsAll FunctionsCommunicationDataSocketVariant子模板上,如图3-71所示,节点依次为:To Variant、Variant To Data、Variant To Flattened String、Flattened String To Variant、Get Variant Attribute、Set Variant Attribute、Delete Variant Attribute。图3-71 Variant操作节点3.3.2 波形数据的组成波形数据的组成LabV
16、IEW中的波形数据有两种:模拟波形数据(Waveform Data)和数字波形数据(Digital Waveform Data)。模拟波形数据用来表示模拟信号的波形;数字波形用来表示二进制数据。通常二者都是由4个元素组成,即起始时间、Delta t、波形数据和属性。(1) 起始时间t0。起始时间t0为Time Stamp类型,表示波形数据的时间起点。起始时间可以用来同步多个波形,也可以用来确定两个波形的相对时间。(2) Delta t dt。dt是双精度浮点数,表示一个波形中相邻两个数据点之间的时间间隔,以s为单位。(3) 波形数据Y。Y是双精度浮点数组,按照时间先后顺序给出整个波形的所有数据
17、点。(4) 属性Attributes。属性包含了波形的数据信息,如波形名称、数据采集设备的名称等。Attributes是Variant数据类型,用于携带任意的属性信息。LabVIEW利用前面板对象Waveform和Digital Waveform来分别存放模拟波形数据和数字波形数据,Waveform和Digital Waveform在ControlsAll ControlsI/O子模板上。默认情况下只显示3个元素(t0、dt和Y),在右键弹出的快捷菜单中选择Visible ItemsAttributes可显示属性,如图3-72所示。图3-72 波形控件3.3.3 波形数据的操作节点波形数据的操
18、作节点波形数据的操作节点位于FunctionsAll FunctionsWaveform子模板上,如图3-73所示。这些节点分为基本波形运算节点、模拟波形数据运算节点、数字波形数据运算节点和波形数据的存取节点4部分。这里主要介绍几个最基本的波形操作节点。1Get Waveform ComponentsGet Waveform Components节点的图标如图3-74所示,其功能是将波形数据的4个组成元素分离。在默认情况下,该节点只有t0端口,拖动图标的上边沿或下边沿,或者在输出端口的右键弹出快捷菜单中选择Add Element,可以增加dt、Y、attributes输出端口。使用Operat
19、e Value(操作工具)可以弹出元素选择快捷菜单,或在右键弹出的菜单中选择Select Item,利用该下拉菜单可切换4个元素的输出。图3-73 波形数据操作节点图3-74 Get Waveform Components节点的图标2Build Waveform Build Waveform节点的图标如图3-75所示,该节点的功能是创建一个新的数据波形,或修改已有的波形。默认情况该节点只有waveform和t0输入端口,增加端口和选择输入端口输入元素名称的方法与Get Waveform Components节点相同。如果waveform端口没有接入数据,则节点根据输入参数建立新的波形数据;如果waveform端口接入已有波形数据,则节点根据waveform component端口的输入修改已有波形数据中的值。3Set Waveform AttributeSet Waveform Attribute节点的图标如图3-76所示,其功能是为波形数据添加或修改属性。当由name端口指定的属性名称已经存在时,节点将根据value端口的输入修改这个属性,replace
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程管理领域职位晋升路径分析
- 零售业门店理财顾问服务流程安排
- 网络技术公司数据专员招聘分析
- 服务请求的响应与处理时效性提升计划
- 机构研究报告-小马智行-市场前景及投资研究报告:自动驾驶商业化Robotaxi未来可期
- 低血糖患者的护理
- 智能家居产品交互设计要点
- 房产销售面试准备攻略及话术
- 新兴企业客户管理岗的培训与工作技巧解读
- 酒店预订与接待员职位晋升手册
- 2025年黑农垦单招试题及答案
- 购房预付款合同协议范本
- 超声引导下动静脉内瘘穿刺技术
- 2025年北京市北京市海淀区海淀街道国民经济和社会发展第十五个五年规划
- (高清版)DB62∕T 4668-2022 农村单罐直通式和积肥式户用卫生旱厕建设技术规范
- 传感器应用技术 课件全套 梁长垠 项目1-8 传感器认知与测量系统搭建- 无线传感器网络应用电路设计与调试
- 成人高尿酸血症与痛风食养指南(2024年版)解读
- DB13(J)-T 8349-2020 城市精细化管理标准(2024年版)
- 《AIGC应用实战:写作、绘图、视频制作、直播》-课件全套 王翎子 第1-9章 认识AIGC -即创的使用方法
- 湖南省业主大会和业主委员会指导细则修订-全文及示范文本
- 2023年山东铝业职业学院单招综合素质考试题库附答案
评论
0/150
提交评论