LabVIEW的数组操作功能是非常强大的,除了数组函数选板中提供的函数之外,信号处理函数选板中的函数实际上也是在操作数组,但是并没有提供直接的集合函数。在MathScript中,LabVIEW提供了几个集合相关函数。
下面我我将利用OPENG中的数组函数实现针对一维数组的集合函数,并利用MathScript对其进行验证。
一、unique集合函数
我首先要介绍的是unique函数。unique本意是唯一的意思,对输入的数组去掉重复的元素,形成新的数组,新数组中的所有元素都是唯一的,各不相同。
OPENG中直接提供了这样的函数,函数名为“去除数组中的重复元素”。函数除了返回去除重复元素后的数组外,还同时返回了删除元素的索引。具体用法见下图。
可以看出MathScript的Sets_unique函数对数组进行了排序而OPENG的“去除数组中的重复元素”函数并没用进行排序,依然保持原来的次序。
二、Union 集合函数
Union集合函数实现的是两个集合的并集。对LABVIEW来说,是合并两个一维数组,并去除其中重复元素。具体用法见下图:
在一、二中,我使用了OPENG中的“去除数组中重复元素”函数,该函数的程序框图如下图所示:
该函数是通过搜索数组元素的方法实现的。首先构造一个相同类型的空数组,对于输入数组中的没一个元素,搜索构造的数组中是否存在该元素,如果不存在,则该元素进入构造的数组。[page]
三、intersect集合函数
intersect集合函数返回两个集合的交集。对于两个一维数组,intersect函数返回两个数组中的公共元素。
四、DIFF集合函数
DIFF函数返回两个集合中去除公共部分余下的元素。OPENG中的“过滤一维数组”函数实现的正好是DIFF函数的功能,如下图所示:
五、XOR集合函数
XOR集合函数返回一个集合,该集合中的元素要么属于输入集合1,要么属于输入集合2.。对于LABVIEW中的两个一维数组,返回两个数组合并后去除公共元素后的数组。
上面我利用OPENG中的数组函数实现了集合中的几个常用函数,显然MATHSCRIPT要方便的多。而且MATHSCRIPT中的集合函数一般都支持矩阵运算,因此对于二维数组同样适用。同时MATHSCRIPT已经支持RT结构,相信其用途会越来越广。
关键字:LabVIEW 编程技巧 集合函数
引用地址:
LabVIEW编程技巧之如何实现集合函数
推荐阅读最新更新时间:2024-03-30 23:03
LabVIEW 8.2的概率函数
概率函数用来进行概率函数运算。概率函数节点包含在概率与统计子选板中,位于函数选板的 数学 概率与统计 概率 ,如图所示。 如图 概率子选板 概率子选板中包括连续分布和离散分布,连续分布节点中常见参数说明如下。x:连续分布变量的分位数。 a:连续分布的形状参数。 b:连续分布的形状参数。 离散分布节点中常见参数说明如下。 x:0或1,指定事件发生时计数值。 p:事件发生的概率,位于区间 。 如表详细列出了概率子选板中节点的图标、接 线端 、名称和功能。 如表 概率子选板节点 连续分布包括如图所示选项,在 连续分布的随机数 函数的右键快捷菜单中选择 选
[测试测量]
CompactRIO和LabVIEW控制心脏模拟器设计
3D模拟器 挑战:开发一个逼真、可靠和可重新配置测试环境,帮助最新的心脏辅助装置进行提高和改善,而无需进行动物试验。 解决方案:利用NI CompactRIO创建一个独立的硬件在环(HIL)测试环境。该测试环境可以把人工机械心脏与循环血流模型相结合,创造一个包含真实血液动力环境的生动的解决方案。 CompactRIO提供了一个坚固、可靠、独立的平台,使我们的团队能够进行持续性测试,这在普通的计算机上是不可能实现的。 由心脏病导致的死亡占发达国家所有死亡人口的将近一半。心脏移植仍然是治疗心脏病最有效的方式,但捐献的器官远远及不上需求。为了解决这种不平衡情况,目前人们正在研究使用。利兹大学正在开发的一种新颖的机械人工心脏
[测试测量]
LabVIEW中的时标、波形以及动态数据
在LabVIEW中我们分析或采集的数据通常都是时间的函数。例如,我们可能希望知道在一天中温度随着时间的变化,或者是变化的波形在时间轴上绘出之后的样子。 LabVIEW有一些特殊的数据类型可以用来帮助一般的用户来以曲线的形式分析或展示这些数据。这些特殊的数据类型就是时标(Time Stamp)、波形(Waveform)和动态数据(dynamic da ta)。时标数据用来存储波形中的时间信息而多个波形可以保存在动态数据中。由于时标、波形以及动态数据的自然依赖关系,我们就在本文中对它们一起介绍。 时标(Time Stamp) 时标这个数据类型用来存储绝对日期/时间值,比如数据采集的时间。它的精度非常高,不论是
[测试测量]
LabView学习笔记(1)跑马灯的实现
最近开了门虚拟仪器的课程,感觉其中的并行执行和数据流传输方式很有噱头,就想动手观察一下,并将其作为自己本门课程的学习笔记。作为和Labview的同龄人,我完全能体会到其将触角延伸到实时系统、嵌入式开发技术的雄心壮志,希望它能在测试与控制的路上越走越远。 使用while循环加上移位寄存器,实现布尔显示控件的循环点亮,通过滑块控制闪烁间隔,程序完成后前面板界面如下: 程序框图: 经测试,程序运行良好!
[测试测量]
基于LabVIEW的USB实时数据采集处理系统的实现
通用串行总线USB(Universal Serial Bus)作为一种新型的数据通信接口在越来越广阔的领域得到应用。而基于USB接口的 数据采集 卡与传统的PCI卡及ISA卡相比具有即插即用、热插拔、传输速度快、通用性强、易扩展和性价比高等优点。 USB 的应用程序一般用Visual C++编写,较为复杂,LabVIEW语言是一种基于图形程序的编程语言,内含丰富的数据采集、数据信号分析分析以及控制等子程序,用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,易于调试、理解和维护,而且程序编程简单、直观。因此它特别适用于数据采集处理系统。利用它编制USB应用程序,把LabVIEW语言和USB总线紧密结合起来的数
[测试测量]
LabVIEW自定义控件挺好玩
如果觉得系统自带的控件比较不好看,那我们就可以建立自定义的控件来使用。 例如,我们想使用透明的图片来当做控件,但是系统就没有。怎么办呢? 类似于这样的: 那我们建立自定义控件: 新建自定义控件 以这个为例吧 都一样 我们试着直接导入图片 发现是这个鸟样的,完全不符合我的要求嘛 试着切换至编辑模式,注意左上角 右键,以相同的大小从文件导入 结果是这样的,这才符合我的要求么。 PS:只有PNG格式的图片,才能有这样的效果。
[测试测量]
LabVIEW和NI CompactDAQ助力UFSC复杂的车辆噪声测试
声学图像识别50公里时速、1,904.3 Hz下的轮胎和排气噪声
“我们选择了紧凑且直流供电的NI硬件,它能为阵列中的麦克风提供电源。”
- Samir N.。 Gerges, Federal University of Santa Catarina (UFSC)
挑战:
开发一款便携且价格合理的声学波束形成形,实现通过噪声测量和其他应用中的噪声源识别 。
解决方案:
使用32个麦克风组成的螺旋阵列、NI LabVIEW软件、NI声音和振动测量套件,以及32通道的NI CompactDAQ系统,搭配8个NI 9234 4通道动态信号采集(DSA) 模块来获取噪声源的可视化图像
[嵌入式]