当前位置:首页 > 第4章 - 数组、簇与字符串
Array Max & Min函数从一个数组中找到最大值和最小值,以及它们的位置索引值。如果有多个相同的极值就给出最前面一个索引值。图4-16(a) 连接的是一维数组,极值位置是单个数值;图4-15(b) 连接的是二维数组,极值位置是一维数组,数组前一个值是行索引位置,后一个值是列索引位置。
10. 转置二维数组函数Transpose 2D Array
图4-17 转置数组
Transpose 2D Array函数把输入的二维数组的各行变为各列。这是一个很简单,但是在图形显示、数据采集中很有用的函数。
11. 重构数组函数Reshape Array
(a) (b) (c)
图4-18 重构数组
Reshape Array函数采用输入数组的数据,根据输入的dimension size参数确定的维数,重新构建一个数组。图4-18(a) 用连接的一维数组的数据构建了一个4行3列的二维数组,数值不足时填补0。图4-18(b) 用连接的二维数组的数据构建了一个8个成员的一维数组,用不完的数据甩掉了。图4-18(c) 用连接的5行5列的二维数组的数据构建一个4行3列的二维数组,用不完的数据也甩掉了。从图4-18(b)和图4-18(c)可以看出它采用原数组的数据是从第一行开始,顺序提取,用完前一行再用后一行。
4.2 簇
4.2.1 簇的概念
簇是一种数据类型,一个簇就是一个由若干不同数据类型的成员组成的集合体,类似于C语言中的结构体和Pascal语言中的记录。可以把簇想象成一束通讯电缆线,电缆
MATLAB中的cell矩阵 中每一根线就是簇中一个不同的数据元素。使用簇可以为编程带来以下的便利。
1. 把程序代码窗口中不同位置,不同数据类型的多个数据攒在一起,减少了连线的混乱。
2. 子程序有多个不同数据类型的参数输入输出时,把它们攒成一个簇可以减少连接板上端口的数量。
3. 某些控件和函数必须要簇这种数据类型的参数。
簇的成员可以是任意的数据类型,但是必须同时都是控制件或同时都是显示件。 簇的成员有一种逻辑上的顺序,这是由它们放进簇的先后顺序决定的,与它们在簇中摆放的位置无关。前面的成员被删除时,后面的成员会递补。改变簇成员逻辑顺序的方法是在簇上弹出菜单,选Reorder Controls In Cluster…弹出一个对话框,依次为簇成员指定新的逻辑顺序。 4.2.2 簇的创建
创建簇的方法与创建数组的方法极其相似。 1. 在前面板上创建簇
图4-19是在前面板上创建簇的步骤。先在Array & Cluster控件子模板中选择一个簇的空壳放到前面板上;然后根据需要放置的控件多少用定位工具调整簇的空壳的大小;从控件模板中取控件或从前面板上移动控件到簇的空壳中。这个簇的数据类型以及它是控制件还是显示件全取决于放入的控件。图4-19中放了一个数值型控制件,一个字符型控制件和一个布尔型控制件。
图4-19 在前面板上创建簇
2. 在程序代码窗口中创建簇常量
在程序代码窗口中创建簇常量最一般的方法类似于在前面板上创建数组。先从Cluster函数子模板中选择簇的空壳放到程序代码窗口中,然后根据需要选择一些数据常量放到空簇中。
图4-20 在程序代码窗口中创建簇常量
图4-20选择了一个数值型常量,一个字符型常量,一个布尔型常量。也可以把前面板上的簇控件拖动或拷贝到程序代码窗口中产生一个簇常量。只有数值型成员的簇边框是棕色的,其它是粉红色的。
3. 簇成员赋值
用上述方法创建的簇常量,它的成员还没有有效的值,从外观上看都显示为灰色。要根据需要用操作工具或定位工具为簇成员逐个赋值。
4. 用簇函数创建簇 在下一节介绍。 4.2.3 簇函数
1. 解析簇函数 Unbundle
Unbundle 函数刚刚放进程序代码窗口时,有一个输入端口和两个输出端口。如图4-21(a)所示。可以用定位工具对端口进行缩放。如图4-21(b)所示。但是这似乎没有多大必要,因为它连接一个输入簇以后,端口数量就自动与簇的成员数一致了,而且不能再改变。每个输出端口对应一个簇成员,端口上显示出这个成员的数据类型。各个簇成员在端口上出现的顺序与它的逻辑顺序一致。如图4-21(c)所示。图4-21(d )是解析出来的簇成员。连接几个输出是任意的。
(a) (b) (c) (d)
图4-21 Unbundle 函数
2. 合成簇函数 Bundle
(a) (b) (c)
图4-22 Bundle 函数
Bundle函数有两种基本用法,在图4-22(a)中,用这个函数将三个数据攒成一个簇。Bundle 函数的输入端口数量也是可以任意增减的。在这种用法中,cluster 参数没有连接数据。
在图4-22(b)中,用这个函数替换一个簇中的成员。将原有的簇连接到cluster 参数上,输入端口自动与这个簇的成员匹配。此时希望替换哪个成员就把用做替换的数据连接到哪一个端口,如果用做替换的数据与原数据类型不符,就不允许连线。在这里用一个双精度浮点数去替换整型数,虽然允许连线,但是输入数据被进行了强制转换。
图4-22(c)的用法实际上与图4-22(a)是一致的,只是输入参数中有一个是簇,输出的结果是由一个簇(椭圆中部分)、一个数值和一个字符串组成的簇。如果需要向簇中追加成员,就得把簇解开,再和新成员一起攒成一个簇。
3. 按名称解析簇成员函数Unblundle By Name
Unblundle By Name 函数按指定的成员名称从簇中提取成员。这个函数刚放进程序代码窗口中只有一个输出端口,当它的输入端口连接了一个簇,这个输出端口就就显示出簇中逻辑上第一个成员的名称。LabVIEW 的前面板控件一般都有一个默认的名称,但是许多常量没有默认名称。如果簇中的成员没有名称,它就不会出现在输出端口中,这上时就要在它的标签中为它输入名称。Unblundle By Name 函数的输出端口可以任意缩放,它允许多次解析同一个成员。选择哪一个端口解析出哪一个成员的方法仍然是在端口上弹出菜单,选Select Item ,如图4-23所示。
图4-23 按名称解析簇
共分享92篇相关文档