LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 何玉钧 高会生 等 第6章 变量、数组、簇和矩阵

上传人:E**** 文档编号:89400364 上传时间:2019-05-24 格式:PPT 页数:44 大小:2.17MB
返回 下载 相关 举报
LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  何玉钧 高会生 等 第6章 变量、数组、簇和矩阵_第1页
第1页 / 共44页
LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  何玉钧 高会生 等 第6章 变量、数组、簇和矩阵_第2页
第2页 / 共44页
LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  何玉钧 高会生 等 第6章 变量、数组、簇和矩阵_第3页
第3页 / 共44页
LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  何玉钧 高会生 等 第6章 变量、数组、簇和矩阵_第4页
第4页 / 共44页
LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  何玉钧 高会生 等 第6章 变量、数组、簇和矩阵_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 何玉钧 高会生 等 第6章 变量、数组、簇和矩阵》由会员分享,可在线阅读,更多相关《LabVIEW虚拟仪器设计教程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 何玉钧 高会生 等 第6章 变量、数组、簇和矩阵(44页珍藏版)》请在金锄头文库上搜索。

1、第6章 变量、数组、簇和矩阵,6.1 变 量 6.2 数 组 6.3 簇 6.4 矩 阵,6.1 变 量,6.1.1 局部变量,当无法访问某前面板对象或需要在程序框图节点之间传递数据时,可创建局部变量。局部变量仅仅出现在程序框图上,而不在前面板上。通过局部变量可对前面板上的输入控件或显示控件进行数据读写。,建立局部变量方法,通过前面板对象或程序框图接线端的快捷菜单中的“创建”“局部变量”选项创建局部变量。,将“函数”选板上的局部变量节点放置在程序框图上,通过建立局部变量与输入控件或显示控件相关联建立局部变量。,局部变量的读写,创建了一个局部变量后,就可从变量读写数据了。默认状态下,新变量将接收

2、数据,变量就像一个显示控件,是一个写入局部变量。将新数据写入该局部变量,与之相关联的前面板输入控件或显示控件将由于新数据的写入而更新。,写入局部变量,读取局部变量,变量可配置为数据源、读取局部变量。右键单击变量,从快捷菜单中选择“转换为读取”,便可将该变量配置为一个输入控件。节点执行时,VI将读取相关前面板输入控件或显示控件中的数据。,如需使变量从程序框图接收数据而不是提供数据,可右键单击该变量并从快捷菜单中选择“转换为写入”。,局部变量应用举例,该实例通过典型的并行循环结构,使用布尔开关局部变量读取开关的值,可同时停止两个循环。由于布尔控件的“单击时触发”机械动作与局部变量不兼容,因此通过另

3、一个局部写入变量将开关值重置为“开”,仿真“单击时触发”机械动作。,利用局部变量实现一个布尔开关同时控制两个While循环,6.1.2 全局变量,全局变量可在同时运行的多个VI之间访问和传递数据。全局变量是内置的LabVIEW对象。创建全局变量时,LabVIEW将自动创建一个有前面板但无程序框图的特殊全局VI。向该全局VI的前面板添加控件可定义其中所含全局变量的数据类型及变量数目。该前面板实际便成为一个可供多个VI进行数据访问的容器。,全局变量的创建,在程序框图中放置“全局变量”节点,双击节点打开全局变量VI前面板,放置需要创建为全局变量的输入控件和显示控件。保存该全局VI并返回到原始VI的程

4、序框图。,可创建多个仅含有一个前面板对象的全局VI,也可创建一个含有多个前面板对象的全局VI从而将相似的变量归为一组。,建立程序框图中全局变量节点与全局变量前面板中对象之间的关联。,全局变量节点副本创建,在程序框图“函数选板”中点击“选择VI”选项,在弹出的“选择需打开的VI”对话框中选择打开保存全局变量的VI,则在鼠标指针将浮着一个全局变量节点,将其放置到程序框图中即实现副本的创建。放置到程序框图上的全局变量节点默认和全局变量前面板中的一个自带标签对象关联,可以通过重新建立关联关系改变节点与对象之间的关系。,全局变量应用举例,全局变量前面板对象,第一个VI的程序框图,第二个VI的程序框图及前

5、面板,将第一个VI连续产生的随机数传递到第二个VI中并在波形图表中显示 第二个VI的停止按钮同时控制两个VI的运行,6.1.3 局部变量和全局变量使用注意事项,如需对一个局部或全局变量进行初始化,应在VI运行前确认变量包含的是已知的数据值,否则变量可能含有导致VI发生错误行为的数据。如变量的初始值基于一个计算结果,则应确保LabVIEW在读取该变量前先将初始值写入变量。,(1)局部变量和全局变量的初始化,(2)竞争状态,两段或两段以上代码并行改变一个共享资源的值时,就发生了竞争状态。发生竞争时VI的运行结果取决于共享变量先执行哪个动作,竞争状态会引起不可预见性。当有多于一个操作对同样数据的值进

6、行更新时可能导致竞争状态,因此在使用局部变量和全局变量时应避免竞争状态。,(3)使用局部变量和全局变量时应考虑内存,使用局部变量和全局变量通常会使用更多的内存,最终导致执行速度更慢,因此需要考虑该问题。,6.2 数 组,数组是相同类型元素的集合,由元素和维度组成。元素是组成数组的数据,维度是数组的长度、高度或深度。数组可以是一维或多维的,在内存允许的情况下每一维度可有多达231-1个元素。对一组相似的数据进行操作并重复计算时,可考虑使用数组。,6.2.1 数组的创建,1前面板数组对象的创建,(1)创建一个数组框架,(2)将一个数据对象或元素拖曳到该数组框架中,放入数组框架中的数据对象或元素可以

7、是数值、布尔、字符串、路径、引用句柄、簇输入控件或显示控件,因此数组根据元素的数据类型创建对应数据类型的数组。当放入的对象为输入控件时,所创建的数组将为数组输入控件,当放入显示控件时,所创建的数组将为数组显示控件。,2数组对象的组成及配置操作,改变数组显示元素的形式,数组的组成,数组由索引区和元素区两部分构成的。默认数组只显示一个元素,该元素的索引值在数组索引区域中显示,单击索引区域的增量/减量按钮可以浏览数组元素,即元素区域显示的元素随着索引值变化。数组索引区的显示值始终为元素区左上角元素的索引值。,数组元素赋值,改变数组元素的默认值,改变数组元素大小,为数组空元素赋值时,比当前元素的索引值

8、小的所有空元素都自动被赋予该元素数据类型的默认值。,利用已赋值元素的快捷菜单“数据操作” “当前值设置为默认值”选项可以为数组元素设置默认值。,3程序框图数组常量的创建,将函数选板中的“数组常量”放置到程序框图中创建一个数组常量框架。将“常量”(如数值常量、布尔常量、字符串常量等)拖入数组常量框架中,即完成一个数组常量的创建。数组常量的相关配置操作与前面介绍的前面板中的数组对象相同。利用数组常量的索引区和边框上快捷菜单“转换为输入控件”和“转换为显示控件”选项可分别把数组常量变为前面板上的输入控件和显示控件。,4二维数组及多维数组的创建,(1)通过数组索引区或边框的快捷菜单“添加维度”选项增加

9、数组的维数,相反“删除维度”可减小数组的维度. (2)在鼠标指针处于“自动选择工具”状态时,移动鼠标指针到数组索引区,此时索引区外围将显示出尺寸控制点,用鼠标在垂直方向拖动尺寸控制点,可以改变数组的维数。,6.2.2 数组的算术运算,LabVIEW一个非常大的优势在于它可以根据输入数据的类型判断算子的运算方法,即自动地实现多态。比如在LabVIEW中可以直接将两个数组相加,LabVIEW会自动根据数组大小、数据类型决定相应的运算方法。 对于加减乘除,数组之间的运算满足下面的规则。 (1)如果进行运算的两个数组大小完全一样,则将两个数组中索引相同的元素进行运算形成一个新的数组。 (2)若大小不一

10、样,则忽略较大数组多出来的部分。 (3)如果一个数组和一个数值进行运算,则数组的每个元素都和该数值进行运算从而输出一个新的数组。,6.2.3 数组函数及操作,数组操作函数,数组函数操作实例,1数组大小函数,该函数返回输入数组每个维度中元素的个数。,求一维数组大小:一维数组元素的个数。,求三维数组大小:返回一个含三个元素的数组,指明数组的页、行、列的数量。,2索引数组函数,该函数的功能是返回“n维数组”在索引位置的元素或子数组。,求一维数组索引为0和2的元素。,求二维数组行索引为0列索引为2的元素及行索引为1的子数组。,3替换数组子集函数,该函数的功能是从索引中指定的位置开始替换数组中的某个元素

11、或子数组。,将一维数组索引为1的元素替换为“0” 。,将二维数组列索引为0的元素全部替换为“0”。,替换3维数组行索引为1的前四个元素,其中三维数组为345,输入的“新元素/子数组”为24,因此只能替换第0页和第1页中行索引为1的前四个元素。,4数组插入函数,通过该函数实现在索引指定位置插入元素或子数组,将数组连接到该函数时,函数将自动调整大小以显示数组各个维度的索引。,一维数组中索引值为1处插入一个元素“0”。,在二维数组列索引为1处插入一列数据。,原数组为345的三维数组,插入24的二维数组,插入位置的行索引为1。二维数组的两行分别插入到三维数组的第0和1页中行索引为1的位置,第3页行索引

12、的位置也插入了一行,由于插入的二维数组只有两行,故第3页插入的行的元素全部为默认值“0”。另外插入的二维数组每行只有4个元素,而原数组每行有5个元素,因此插入的行的最后一个元素也是默认值“0”。,5删除数组元素函数,该函数从输入的“n维数组”中删除元素或子数组。“n维数组”接入是要删除元素、行、列或页的数组,可以是任意类型的n维数组。“长度”为确定要删除元素、行、列或页的数量或长度。,删除一维数组从索引为1开始的两个元素。,删除二维数组从行索引为1开始的两行元素。,连线长度为1,未连线索引,故删除三维数组最后一页数据,“已删除元素的数组子集”和“已删除部分”均为三维数组,只不过已删除元素的数组

13、子集比输入数组少1页,已删除部分只有1页。,6初始化数组函数,通过该函数可以创建一个数组,其中的每个元素都被初始化为“元素”输入端子连接的值。通过定位工具可调整函数的大小,增加输出数组的维数。,初始化创建含5个元素的一维数组。,初始化创建4行5列的二维数组,初始化创建3页4行5列的三维数组,7创建数组函数,该函数实现连接多个数组或向N维数组添加元素的功能。,由标量元素创建一维数组。,由一维数组禁用“连接输入”创建二维数组。,由一维数组启用“连接输入”创建一维数组。,8数组子集函数,该函数用于返回输入数组从索引位置开始包含长度个元素的一部分。,获取一维数组从索引1开始长度为2的子集,获取二维数组

14、从行索引1开始长度为2、列索引2开始长度为2的子集,9数组最大值与最小值函数,该函数用于返回数组中的最大值和最小值,及其索引。,一维数组求最大值最小值及索引,二维数组求最大值最小值及索引,10重排数组维数函数,该函数根据维数大小0m-1的值,改变数组的维数。函数从左至右按行读取内存中数据数组的值,并显示重新排序后的数组。,一维数组重排成2行3列的二维数组,二维数组重排成2页3行3列的三维数组,11一维数组排序函数,该函数实现将数组输入数组元素按照升序排列后输出。如数组的元素是簇,该函数将按照第一个元素的比较结果对元素进行排序。如第一个元素匹配,函数将比较第二个和其后的元素。,12搜索一维数组函

15、数,该函数实现在输入的“一维数组”中从“开始索引”位置开始搜索“元素”并返回该“元素索引”。,13拆分一维数组函数,该函数实现从“索引”位置将输入“数组”分为两部分,返回两个数组。,14反转一维数组函数,该函数实现反转数组中元素的顺序。,15一维数组移位函数,该函数将数组中的元素移动多个位置,方向及移位位置由n指定。 n0时移位方为右移,n0时为左移。,16一维数组插值函数,该函数实现通过“指数索引或x”值,线性插入“数字或点的数组”中的y值。,17以阈值插值一维数组函数,该函数实现在表示二维非降序排列图形的一维数组中插入点,该函数相当于“一维数组插值函数”的反函数。,18交织一维数组函数,该

16、函数实现交织输入数组中的相应元素,形成输出数组。,19抽取一维数组函数,该函数的功能是使数组的元素分成若干输出数组,依次输出元素。,20二维数组转置函数,该函数的功能是重新排列二维数组的元素,使二维数组i,j变为已转置的数组j,i。,6.3 簇,簇是和数组类似的一种复合数据类型,与数组不同在于数组中元素的类型都是相同的,而簇中元素的数据类型可以相同,也可以不同。簇是LabVIEW中的一个独特的概念,它与其他编程语言中的结构体变量是等同的。 在LabVIEW中,簇可将程序框图中的多个相关数据元素集中在一起,这样就只需要一条连线就可以把多个节点连接到一起,这样不仅减少了数据连线的数量,还可以减少子VI的连接端口的数量,同时当前面板中显示控件繁多而又单一的时候,利用簇来排版界面也能使程序简洁漂亮。,6.3.1 簇的创建,和数组的创建方法类似,创建一个簇首先也需要建立一个簇框架,然后将所需要的控件对象拖入框架中,即完成一个簇的创建。不同的是,由于构成数组的元素必须是同类型的,因此在拖入控件确定数组的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号