第6章 字符串、数组、簇和矩阵
本章内容 6.1 字符串(String) 6.2 数组(Array) 6.3 簇(Cluster)——LabVIEW中的结构体变量 6.4 矩阵(Matrix)
6.1 字符串(String) 字符串在LabVIEW编程中会频繁的用到,因此LabVIEW封装了功能丰富的字符串函数用于字符串的处理,用户不需要再像C语言中一样为字符串的操作编写繁琐的程序。 字符串控件包括输入控件、显示控件和下拉框。
6.1 字符串(String)
6.1 字符串(String) 6.1.1 字符串控件 字符串输入控件一般被用作文本输入框,而字符串显示控件一般被用作文本显示框。
6.1 字符串(String) 6.1.2 表格和树形控件 表格(Table)和树形控件在Controls Palette的Modern->List & Table…面板下。 表格实际上就是一个字符串组成的二维数组。 树形控件以树的形式显示多层内容,Windows的资源管理器就是用树形控件来显示文件目录的。
6.1 字符串(String) 6.1.2 表格和树形控件举例
6.1 字符串(String) 6.1.3 字符串函数
6.1 字符串(String) 6.1.3 字符串函数举例 基本字符串函数示例
6.1 字符串(String) 6.1.3 字符串函数举例 数据数组/电子表格字符串转换函数示例
6.2 数组(Array) 6.2.1 数组控件 数组控件
6.2 数组(Array) 6.2.1 数组控件
6.2 数组(Array) 6.2.2 数组之间的算术运算 LabVIEW一个非常大的优势就是它可以根据输入数据的类型判断算子的运算方法,即自动实现多态 对于加减乘除,数组之间的运算满足下面的规则: a) 如果进行运算的两个数组大小完全一样,则将两个数组中索引相同的元素进行运算形成一个新的数组。 b) 若大小不一样,则忽略较大数组多出来的部分。 c) 如果一个数组和一个数值进行运算,则数组的每个元素都和该数值进行运算从而输出一个新的数组。
6.2 数组(Array) 6.2.3 数组函数
6.2 数组(Array) 6.2.3 数组函数举例 用Array Size 函数获得三维数组大小示例
6.2 数组(Array) 用循环创建数组 使用For循环自动索引(auto-indexing)(默认状态)方法自动创建数组。 其他操作: 1、循环计数值自动设置为输入数组元素个数。 2、输入数组元素一次一个进入For循环。 禁用索引状态时(Disable indexing): 1、输入数组一次性全部传入到For循环内。 2、输出数组一次性得到For循环输出的全部元素。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 簇是LabVIEW中比较独特的一个概念,但实际上它就对应于C语言等文本编程语言中的结构体变量。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 6.3.1 簇的创建 通过簇控件实现的温度显示器
6.3 簇(Cluster) ——LabVIEW中的结构体变量 改变簇内部元素控件的索引
6.3 簇(Cluster) ——LabVIEW中的结构体变量 6.3.2 簇操作函数
6.3 簇(Cluster) ——LabVIEW中的结构体变量 1、解包函数(Unbundle) 该函数将簇解开从而获得簇中各个元素的值。缺省情况下,它会根据输入的簇自动调整输出端子的数目和数据类型,并按照簇内部元素索引的顺序排列。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 2、打包函数(Bundle) 该函数用来为Cluster中各元素赋值。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 3、按元素名称解包函数(Unbundle By Name) 普通的解包函数解包后只有将鼠标移到输出端子上才能看到输出元素的名称,程序的可读性不高。该函数可以根据名称有选择的输出簇内部元素。其中元素名称就是指元素的Label。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 4、按元素名称打包函数(Unbundle By Name) 该函数通过簇内部元素名称来给簇内部元素赋值。参考簇是必须的,该函数通过参考簇来获得元素名称。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 簇操作函数使用示例
6.3 簇(Cluster) ——LabVIEW中的结构体变量 6.3.3 error in 和error out簇 LabVIEW利用error in 和error out这两个预定义簇来作为传递错误信息的载体。
6.3 簇(Cluster) ——LabVIEW中的结构体变量 6.3.3 error in 和error out簇 对于系统错误,code都有预先的定义,可以通过选择Help->Explain Error…打开错误解释框来查找该错误代码的更详细的解释。
6.4 矩阵(Matrix) LabVIEW 8之前的版本中只能通过二维数组来实现矩阵的操作。但是数组的运算方法和矩阵的运算方法有很大不同,譬如两个数组相乘是直接将相同索引的数组元素相乘,而矩阵的相乘必须按照线性代数中规定的方法相乘,因此用数组实现矩阵运算是非常麻烦的。LabVIEW 8最新加入了对矩阵的支持,从而使矩阵的运算变得非常简单。
6.4 矩阵(Matrix) 矩阵乘法举例
6.4 矩阵(Matrix) LabVIEW 8还提供了丰富的线性代数运算函数,它们位于Functions Palette的mathematics -> liner algebra…面板下
小试身手 1. 为第5章的习题2连续温度采集监测添加报警信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度78.23℃”,正常情况下输出空字符串。
小试身手 2. 对字符串进行加密,规则是每个字母后移5位,例如A变为F,b变为g,x变为c,y变为d…
小试身手 3. 产生一个3×3的整数随机数数组,随机数要在0到100之间,然后找出数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。如下图所示:
小试身手 4.创建一个 计算课程期末成绩的VI,使用3个一维数组表示学生3次不同的考试成绩。要求采用两种方法实现 (1)For循环自动索引
小试身手 5. 利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。油门控制转速,转速=油门*100,档位控制时速,时速=档位*40,油量随VI运行时间减少。