LabVIEW应用开发——基本函数(一)

news2024/12/23 19:07:40

        前面我们介绍了一些控件的介绍和属性的配置,想要完成一个软件只会拖控件肯定是不行的,没办法实现既有的功能。比如我们要实现从串口中读到数据,根据一定的协议解析,然后转换成各个参数的值的显示,包括时间、电压、电流等等。这就涉及到了数据的操作,而需要完成这些操作需要我们掌握LabVIEW基本函数运行结构的使用。

        LabVIEW作为一门G语言编程,基本概念很难和常规语言一样,要实现运算,需要使用运算函数,通过使用连线,把需要运算的控件和符号连接起来。相对于常规语言,这一块逻辑代码的可读性还是比较差的,需要我们多写、多读、多了解才能快速阅读和开发。

1、算数运算函数

        函数是LabVIEW内置的执行元素,相当于编程语言中的运算符、函数或者语句。

1)基本函数

        基本函数包括加、减、乘、除等基本运算,还包括常用的运算函数,比如平方、随机数、常量等。

2)标量之间的基本运算

        标量之间的运算包括加、减、乘、除、乘方等,运算结果还是标量。

3)标量与数组的运算

        标量与数组的运算,指的是标量与数组中的每一个元素的相应运算,运算结果是相同维度的数组。

        在下面的例子中,把一个二维数组的全部元素的指全部加上一个常数,输出到另一个二维数组中。

4)数组与数组的运算

        不同维度的数组不允许运算,相同维度的数组分别两种场景。

        相同维度、相同大小的数组运算:对相同位置的数组元素进行运算,形成新的相同维度、相同大小的数组。

        相同维度、不同大小的数组运算:这种情况下,根据最小原则,比较大的数组进行裁剪成最小的数组大小,然后再进行数组运算,形成新的数组。

5)数组函数

        LabVIEW针对数组Array提供了很多专用的函数操作。这些函数的功能非常强大,使用也很灵活。

        数组大小Array Size:该函数用于获取数组的大小,如果是一维数组,返回的是I32的数据,表示一维数组的长度。如果是多维数组,则返回一个元素为I32类型的数组,数组中的每一个元素表示对应维数的大小。下面的例子中得到的数组两个元素,4行3列代表二维数组的大小。

        索引数组Index Array:LabVIEW中数组的元素需要通过索引获取,索引从0开始。该函数用法很灵活,可以取出单个元素,也可以得到整个数组。

        在下面的示例中,二维数组通过只传行数或者列数得到数组,通过传递行和列得到单个元素,通过两次获取数组大小得到维度。

        替换数组子集Replace Subset:一维数组中,替换的可以是其中的一个元素,也可以是一个数组。该函数的输入端子为数组索引,表示开始替换的位置,如果不输入,则从0处也就是起始位置,如果从索引号开始替换,替换的数组长度大于被替换的,那么会自动被截断。

        二维或者多维数组中,可以进行元素替换、行替换、列替换和行列都替换,如果超出范围一样会被截取忽略,索引一样从0开始。

        数组插入Insert Into Array:将一个数组根据索引插入到另一个数组中的索引位置,输出数组会拓展,如果没有设置索引,则默认从尾部插入。如果指定的索引超出数组的范围,则操作被忽略。二维数组插入,索引需要在行和列中选择一个,不能全选,插入后不会改变大小,超出范围被忽略。

        删除数组Delete From Array:从数组中删除一个元素或者子数组,输出删除后的数组子集和已删除的元素或者子集。删除元素只能是一维数组,二维数据根据行或者列直接删除一整行或者一整列。


        初始化数组Initialize Array:动态创建数组,常用于通信中。输入大小和初始值,输出创建的数组。向下拖动大小的输入端子,增加维度。维度可以为0,输出空数组。

        构建数组Build Array:连接多个数组或者向数组中添加元素。将多个标量直接连接到该函数得输入端子可以构建一个一维数组,如果连接到输入端子得是标量和数组,则是数组元素的添加。

        如果输入是标量和数组,那么则是数组元素添加的操作。

        如果输入是数组和数组,那么需要选择是否连接,非连接的情况下,则为添加行的操作。下面为非连接。

        设置为连接输入。

        数组子集Array Subset:输入索引号和长度返回数组的一部分,如果索引大于数组实际长度,或者长度为0,则返回同类型的空数组。

        数组最大最小值Array Subset:输入一个数组,返回最大值和最小值的值和索引。

        重排Reshape Array:重新排列一维数组或者多维数组,如果输入的数大于数组数量,默认补齐,反之,则多余的被舍弃。

        一维数组排序Sort 1D Array:对输入的数组进行升序排序。如果数组的元素是簇,那么将簇中第一个元素的的比较结果进行排序。此函数只能是一维数组,并且只能是升序,如果需要降序,则对升序数组进行反转操作。

        搜索一维数组Search 1D Array:搜索一维数组从索引处开始是否存在指定的元素,如果存在则返回元素的索引号,如果不存在,返回-1。

        拆分一维数组Splite 1D Array:以索引为界,把一维数组拆分成两个一维数组。

        循环移位一维数组Rotate 1D Array:当输入参数n大于零,则将数组最后的n个元素置于前端,当n小于零,则将数组前面的n个元素置于后端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Simulink中如何使用数组以及创建数组、对数组索引、赋值

一、总体概述 1、数组的创建:Mux/constant 2、数组的切片:Demux 3、数组的索引:Selector 4、数组的赋值:Assignment 5、数组的运算:数组可只直接使用运算模块、点乘、矩阵运算 二、详细步骤 1、数组的创建 &am…

【Docker】Linux网络命名空间

命名空间 Namespace是Linux提供的一种对于系统全局资源的隔离机制;从进程的视角来看,同一个namespace中的进程看到的是该namespace自己独立的一份全局资源,这些资源的变化只在本namespace中可见,对其他namespace没有影响。容器就…

stm32的ADC采样率如何通过Time定时器进行控制

ADC采样率是个跟重要的概念. 手册上说可以通过Timer定时器进行触发ADC采样. 可我这边悲剧的是, 无论怎么样. ADC都会进行采样. 而且就算是TIM停掉也是一样会进行采样. 这就让我摸不着头脑了… 我想通过定时器动态更改ADC的采样频率. 结果不随我愿… 这到底是什么问题呢? 一…

STM32 pack STM32F系列开发包下载/stm32 Cube Keil V5 开发pack突然丢失

文章目录 1.做STM32开发时,经常发现下载的DEMO代码无法打开,ST自带的更新库软件根本连不上服务器,每次到此都非常恼火。即使进入到官方下载,但每次下载时间超级长都是几小时级别的,如果上面的链接满足不了,那就花几个积分,去下边的链接下载吧。1.各种安装包下载链接下载…

Q41F-40C手动球阀型号解析

Q41F-40C型号字母含义解析 Q41F-40C是德特森阀门常用的手动球阀型号字母分别代表的意思是: Q——代表阀门类型《球阀》 4——代表连接方式《法兰》 1——代表结构形式《浮动式》 F——代表阀座材料《聚四氟乙烯》 -《分隔键》 40——代表公称压力《4.0MPA》 C——代表阀…

红队专题-Web渗透之资产情报信息收集能力(社工)总结

信息收集 思路框架知识整理 招募六边形战士队员主动信息收集-直接访问[工具]打点收集内容服务器系统版本、域名域名信息收集工具 dnsenumtheHarvesterLayer子域名收集 DiscoverSubdomain子域名信息搜集工具 wydomain目标域名、DNS收集 subDomainsBrute 端口同服旁站/服务/bann…

分享!10个使用Angular CLI的实战应用技巧

如果您正在使用Angular,就知道Angular CLI有多有用。它简化了创建和管理Angular项目的过程,凭借其直观的命令行界面,它可以轻松处理复杂的任务,如生成组件、服务、管道、指令等。 但是您知道如何有效地使用Angular CLI吗&#xf…

git stash的使用方法

git stash的使用方法 应用场景 当我们在开发一个新功能的时候,或者开发到一半,然后就收到了线上master 出现了bug,当分支开发已经进行了或者进行到一半了,这时怎么办呢? 这时解决方案有两种:一种是先先将当…

JVisualVM工具的使用

本文来说下JVisualVM工具的基本使用 文章目录 内存泄漏和内存溢出分析工具JVisualVM工具使用本文小结 内存泄漏和内存溢出 简单地说,内存泄漏(Memory leak)就是在内存中有很多对象没有被回收,一直占着内存;而内存溢出就…

【Docker】Linux网桥连接多个命名空间

veth实现了点对点的虚拟连接,可以通过veth连接两个namespace,如果我们需要将3个或者多个namespace接入同一个二层网络时,就不能只使用veth了。 在物理网络中,如果需要连接多个主机,我们会使用bridge(网桥&…

代码随想录算法训练营第三十四天丨 贪心算法part05

435. 无重叠区间 思路 为了让区间尽可能的重叠,我按照左边界排序,从左向右记录重叠区间的个数。最后直接返回记录的重叠区间的个数就行了。 本题其实和昨天做的 ‘用最少数量的箭引爆气球’ 的思路整体是一样的,忘记思路可用看昨天的题目笔…

JavaScript 中 BOM 基础知识有哪些?

浏览器对象模型(Browser Object Model,简称 BOM)是 JavaScript 的组成部分之一,BOM 赋予了 JavaScript 程序与浏览器交互的能力。 window 对象是 BOM 的核心,用来表示当前浏览器窗口,其中提供了一系列用来…

创新领航 | 竹云参编《基于区块链的数据资产评估实施指南》正式发布!

10月25日,由深圳数宝数据服务股份有限公司和深圳职业技术大学提出,中国科学院深圳先进技术研究院、中国电子技术标准化研究院、中国(天津)自由贸易试验区政策与产业创新发展局、网络空间治理与数字经济法治(长三角&…

称球问题之十二个球有一个次品不知轻重三次称出

使用穷举法来解&#xff1a; 12个球分A1234、B1234、C1234 1、A1234B1234→坏在C1234 1.1、A123C123→坏在C4 1.2、A123<C123→坏在C123&#xff0c;且知坏的重 1.2.1、C1C2→坏在C3 1.2.2、C1<C2→坏在C2 1.2.3、C1>C2→坏在C1 1.3、A123>C123→坏在C123&…

24位AD转换器16路模拟信号转RS-485/232,数据采集A/D转换模块 YL29

特点&#xff1a; ● 16路模拟信号采集&#xff0c;隔离转换 RS-485/232输出 ● 采用24位AD转换器&#xff0c;测量精度优于0.05% ● 通过RS-485/232接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压3000VDC ● 宽电源供电范围&#xff1a;8 ~ 32VDC ● 可靠性高…

申请流量卡时,运营商到底审核什么?

当我们在网上申请流量卡时&#xff0c;会有一个运营商审核的过程&#xff0c;只有运营商审核通过后才会发卡&#xff0c;那么问题来了&#xff0c;运营商审核&#xff0c;到底是审核的什么呢&#xff1f; 申请流量卡时&#xff0c;运营商的审核是非常严格的&#xff0c;如果不…

【开源】基于SpringBoot的天然气工程业务管理系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…

TypeError: lineplot() takes from 0 to 1 positional arguments but 2 were given

使用pyplot生成图形 from matplotlib import pyplot as plt import pandas as pd import seaborn as sns import numpy as np# 设置中文字体 plt.rcParams[font.sans-serif] [SimHei] sns.set_style({font.sans-serif:[simhei, Arial]})# 加载数据 hr pd.read_csv(data/hr.c…

从【臀部监控】到【电脑监控软件】,企业如何在隐私权与管理权博弈中找到平衡

【臀部监控】 依稀记得在2021年初某个高科技产品的爆火&#xff0c;惹得各大媒体网站争相报道。 起因是一位杭州网友在论坛上发帖&#xff0c;不久前公司给员工发放了一批高科技坐垫。 这个坐垫能自动感应心跳、呼吸在内的诸多人体数据&#xff0c;还能提醒人保持正确坐姿以及…

超全面测评!2023年最常用的15款原型设计工具

在互联网和软件行业中&#xff0c;原型设计是产品经理、交互设计师以及运营人员等职位必不可少的一门技能。原型设计工具的重要性也是人尽皆知&#xff0c;这都是因为原型设计工具是帮助设计者表达产品想法、功能设定及流程逻辑的最佳方式。 今天就为大家带来原型设计工具的相…