文件I/O选板上的函数可控制单个文件I/O操作,这些函数可创建或打开文件,向文件读写数据及关闭文件。使用高级文件VI和函数对文件、目录及路径进行操作。获取文件位置函数的节点图标及端口定义如图8-103所示。如果指定文件名后有LabVIEW认可的字符,例如.vi和.llb,那么函数将返回相应的类型和创建者。图8-108 设置文件位置函数7.设置文件大小将文件结束标记设置为文件起始处到文件结束位置的大小字节,从而设置文件的大小。......
2023-11-26
对于一个数组可进行很多操作,比如求数组的长度、对数组进行排序、查找数组中的某一元素、替换数组中的元素等等。传统的编程语言主要依靠各种数组函数来实现这些运算,而在LabVIEW中,这些函数是以功能函数节点的形式来表现的。LabVIEW中用于处理数组数据的函数选板中的数组子选板中,如图6-20所示。
下面将介绍几种常用的数组函数。
1.数组大小
数组大小函数的节点图标如图6-21所示,数组大小函数返回输入数组的元素个数,节点的输入为一个n维数组,输出为该数组各维包含元素的个数。当n=1时,节点的输出为一个标量。当n>1时,节点的输出为一个一维数组,数组的每个元素对应输入数组中每一维的长度。如图6-22和图6-23所示,分别求出了一个一维数组和一个二维数组的长度。
图6-20 用于处理数组的函数
图6-21 数组大小函数的图标和端口
图6-22 数组大小函数使用的程序框图显示
图6-23 数组大小函数使用的程序框图显示
2.创建数组
创建数组函数的节点图标及端口定义如图6-24所示。创建数组函数用于合并多个数组或给数组添加元素。函数有两种类型的输入:标量和数组,因此函数可以接受数组和单值元素输入,节点将从左侧端口输入的元素或数组按从上到下的顺序组成一个新数组。如图6-25所示,使用创建数组函数创建一个一维数组。
图6-24 创建数组函数的图标和端口
图6-25 使用创建数组函数创建一维数组
当两个数组需要连接时,可以将数组看成整体,即看为一个元素。图6-26显示了两个数组合并成一个数组的情况。相应的前面板运行结果如图6-27所示。
图6-26 使用创建数组函数创建二维数组的程序框图
图6-27 使用创建数组函数创建二维数组的前面板
有时可能根据需要使用创建数组函数时,不是将两个一维数组合成一个二维数组,而是将两个一维数组连接成一个更长的一维数组;或者不是将两个二维数组连接成一个三维数组,而是将两个二维数组连接成一个新的二维数组。这种情况下,需要利用创建数组节点的连接输入功能,在创建数组节点的右键弹出的快捷菜单中选择“连接输入”,创建数组的图标也有所改变,如图6-28所示。
若将图6-26改为图6-29,则运行结果如图6-30所示,即两个一维数组合成了一个更长的一维数组。
3.一维数组排序
图6-28 选择连接输入
图6-29 合并数组的程序框图
一维数组排序函数的节点图标如图6-31所示,此函数可以对输入的数组进行按升序排序,若用户想按降序排序,可以与反转一维数组函数组合,实现对数组的降序排列。
图6-30 合并数组的前面板显示
图6-31 一维数组排序函数的图标和端口
如图6-32和图6-33所示,对一个已知一维数组进行升序和降序排列。
当数组使用的是布尔型时,真值比假值大,因此若图6-32中的数组数据类型为布尔型时,相应的结果如图6-34和图6-35所示。
图6-32 对一维数组进行升降序排列的程序框图
图6-33 对一维数组进行升降序排列的前面板
图6-34 布尔型数据排序的程序框图
(www.chuimin.cn)
图6-35 布尔型数据排序的前面板
4.索引数组
索引数组函数的节点图标及端口定义如图6-36所示。索引数组用于访问数组的一个元素,使用输入索引指定要访问的数组元素,第n个元素的索引号是n-1,如图6-37所示,索引号是2,索引到的是第3个元素。
图6-36 索引数组函数的图标和端口
图6-37 一维数组的索引
索引数组函数会自动调整大小以匹配连接的输入数组维数,若将一维数组连接到索引函数,那么函数将显示一个索引输入,若将二维数组连接到索引函数,那么将显示两个索引输入,即索引(行)和索引(列),当索引输入仅连接行输入时,则抽取完整的一维数组的那一行;若仅连接列输入时,那么将抽取完整的一维数组的那一列;若连接了行输入和列输入,那么将抽取数组的单个元素。每个输入数组是独立的,可以访问任意维数组的任意部分。如图6-38所示,对一个4行4列的二维数组进行索引,分别取其中的完整行、单个元素、完整列。图6-39显示了VI的前面板及运行结果。
图6-38 多维数组的索引的程序框图
5.初始化数组
初始化数组函数的节点图标及端口定义如图6-40所示。初始化数组函数的功能是为了创建n维数组,数组维数由函数左侧的维数大小端口的个数决定。创建之后每个元素的值都与输入到元素端口的值相同。函数刚放在程序框图上时,只有一个维数大小输入端子,此时创建的是指定大小的一维数组。此时可以通过拖拉下边缘或在维数大小端口的右键弹出的选单中选择添加维度,来添加维数大小端口,如图6-41所示。
图6-39 多维数组索引的前面板
图6-40 初始化数组的图标和端口
如图6-42所示,初始化一个一维数组和一个二维数组。
图6-41 添加数组大小端口
图6-42 数组的初始化
在LabVIEW中初始化数组还有其他方法。若数组中的元素都是相同的,用一个带有常数的For循环即可初始化,这种方法的缺点是创建数组时要占用一定的时间。如图6-43所示,创建了一个元素为1,长度为3的一维数组。
若元素值可以由一些直接的方法计算出来,把公式放到前一种方法中的For循环中取代其常数即可。例如这种方法可以产生一个特殊波形。也可以在框图程序中创建一个数组常量,手动输入各个元素的数值,而后将其连接到需要初始化的数组上。这种方法的缺点是繁琐,并且在存盘时会占用一定的磁盘空间。如果初始化数组所用的数据量很大,可以先将其放到一个文件中,在程序开始时再装载。
需要注意的是,在初始化时有一种特殊情况,那就是空数组,空数组不是一个元素值为0、假、空字符串或类似的数组,而是一个包含零个元素的数组,相当于C语言中创建了一个指向数组的指针。经常用到空数组的例子是初始化一个连有数组的循环移位寄存器。有以下几种方法创建一个空数组:用一个数组大小输入端口不连接数值或输入值为0的初始化函数来创建一个空数组;创建一个n为0的For循环,在For循环中放入所需数据类型的常量。For循环将执行零次,但在其框架通道上将产生一个相应类型的空数组;但是不能用创建数组函数来创建空数组,因为它的输出至少包含一个元素。
6.替换数组子集
替换数组子集函数的节点图标及端口定义如图6-44所示。替换数组子集函数是从新元素/子数组端口中输入,去替换其中一个或部分元素。新元素/子数组输入的数据类型必须与输入的数组的数据类型一致。
图6-43 使用For循环进行初始化
图6-44 替换数组子集函数的图标和端口
图6-45和图6-46所示,分别替换了二维数组中的某一个元素和某一行元素。
图6-45 替换二维数组中的某一个元素
7.删除数组元素
删除数组元素函数的节点图标及端口定义如图6-47所示。删除数组元素用于从数组中删除指定数目的元素,索引端口用于指定所删除元素的起始元素的索引号,长度端口用于指定删除元素的数目。图6-48和图6-49分别显示了从一维数组和二维数组中删除元素。
图6-46 替换二维数组中的某一行元素
图6-47 删除数组元素函数的图标和端口
图6-48 从一维数组中删除元素
图6-49 从二维数组中删除元素
有关LabVIEW 2012中文版虚拟仪器从入门到精通的文章
文件I/O选板上的函数可控制单个文件I/O操作,这些函数可创建或打开文件,向文件读写数据及关闭文件。使用高级文件VI和函数对文件、目录及路径进行操作。获取文件位置函数的节点图标及端口定义如图8-103所示。如果指定文件名后有LabVIEW认可的字符,例如.vi和.llb,那么函数将返回相应的类型和创建者。图8-108 设置文件位置函数7.设置文件大小将文件结束标记设置为文件起始处到文件结束位置的大小字节,从而设置文件的大小。......
2023-11-26
将一维数组看成一个整体作为函数参数时,用数组名作为函数的形式参数或实际参数。一维数组作为函数的形式参数本质上是一个指针变量,所以在描述上不需要指定形参数组的长度。上面程序中函数sum的原型为:int sum;,表示了该函数在被调用时应该传递一个整型数组给一维数组形式参数v[],数组的长度由整型变量n表示,函数sum的功能是将用形式参数v表示的长度为n的数组元素求和。......
2023-11-20
如需将文本字符串写入文本文件,可用写入文本文件函数自动打开和关闭文件。例8-1:文本文件的写入。文本文件的读取由读取文本文件VI来完成,本实例演示读取文本文件VI的使用方法。程序中,读取文本文件VI有两个重要的输入数据端口,分别是文件和计数。在实例中,读取文本文件VI读取D盘根目录下的data文件,该文件中的数据由实例8-1的程序存入,并将读取的结果在文本框中显示出来。......
2023-11-26
图4-14 移动的对象位置4.改变对象的大小几乎每一个LabVIEW对象都有8个尺寸控制点,当对象操作工具位于对象上时,这8个尺寸控制点会显示出来,用对象操作工具拖动某个尺寸控制点,可以改变对象在该位置的尺寸,如图4-15所示。“取消锁定”的功能是解除对象的锁定状态。当用户已经编辑好一个VI的前面板时,建议用户利用“组合”或者“锁定”功能将前面板中的对象组合并锁定,防止由于误操作而改变了前面板对象的布局。......
2023-11-26
LabVIEW 2012中的数值型控件有着许多共有属性,每个控件又有自己独特的属性,这里只能对控件的共有属性做比较详细的介绍。图3-19 数值型控件量表的属性选项页图3-20 用户可以选择的数值型控件刻度样式LabVIEW 2012为用户提供了丰富、形象而且功能强大的数值型控件,用于数值型数据的控制和显示,合理地设置这些控件的属性是使用它们进行前面板设计的有力保证。......
2023-11-26
虚拟仪器的分类方法可以有很多种,但随着计算机技术的发展和采用总线方式的不同,虚拟仪器可以分为5种类型。因此虚拟仪器的发展完全跟计算机的发展同步,显示出虚拟仪器的灵活性。......
2023-11-26
同步组将在程序执行完毕前始终保持活动状态。如要向一个同步组添加一个已属于另一同步组的定时结构,LabVIEW将把该定时结构从前一个组中移除,添加到新组。中止定时结构的执行,使用定时结构停止VI可通过程序中止定时结构的执行。将字符串常量或控件中的结构名称连接至定时结构停止VI的名称输入端,指定需要中止的定时结构的名称。例如,以下程序框图中,低定时循环含有定时结构停止VI。......
2023-11-26
在图7-34的右图中,程序先让两组的输入输出在For循环的边框通道上形成数组,然后打包,用一个二维数组送到XY图中显示,这种方法比较直观。要求使用XY图绘制出两者随次数增加的变化曲线。图7-40 例7-2的程序框图图7-41 例7-2的前面板显示图7-42 例7-2错误的程序框图图7-43 例7-2错误的前面板显示对于前面板中的两个曲线的显示,可以在XY图的属性中自行设置,如图7-44所示。图7-44 XY图的图形属性......
2023-11-26
相关推荐