《第06章 数组和簇.ppt》由会员分享,可在线阅读,更多相关《第06章 数组和簇.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、教学目的和要求1.了解如何创建和使用数组2.学习使用多种内部数组函数3.了解多态性的概念4.熟悉簇的创建和使用5.学习使用内部函数处理簇第6章 数组和簇 课程名称:虚拟仪器技术任课教师:林青松计划学时:2学时1.内部数组函数2.使用内部函数处理簇重点1.多态性的概念难点1、数组与簇的区别?2、数组和簇用G语言编程和用C语言编程的区别?思考题第6章 数组和簇6.1 数组6.2 用循环创建数组6.3 数组函数6.4 多态性6.5 簇6.6 创建簇控件和指示器6.7 簇函数6.8 搭积木:测量容器6.9 课后阅读:LabVIEW监控中世纪钟楼6.10 小结6.1 数组6.1.1 创建数组控件和指示器
2、6.1.2 多维数组数组v数组是由同一类型数据元素组成的大小可变的集合v在VI中使用数组能:压缩框图代码,容易开发代码v数组可有一维或多维,每维最多231个元素。元素的最大数量取决于可利用的内存v数组的单个元素可为任何类型(除数组、图表、图形)v数组索引0n-1v数组的显示:数组控件或指示器、波形图6.1.1 创建数组控件和指示器v创建数组:选取数组框架、将有效数据对象拖进数组框架v显示数组的更多元素,调节数组窗口大小v显示在数组左边方框中的索引值对应第一个可显示的元素v单击索引框上的上、下箭头可遍历整个数组v数组连线粗v举例说明 数字、字符串6.1.2 多维数组vn维数组需要n个索引v增加数
3、组维数:使用Position工具来调整索引显示框大小;弹出快捷菜单并选择Add Dimension(增加维数)v减少数组维数v示例说明6.2 用循环创建数组6.1.1 创建数组控件和指示器6.1.2 多维数组6.2 用循环创建数组v可以使用For循环和While循环的自动索引方法自动创建数组v每个循环创建数组的一个元素v循环执行完成后,才将数组从循环内输出到指示器中vDisable Indexing禁用自动索引:当VI执行完后,仅从循环中输出数组的最后一个值。v自动索引:For循环和While循环在循环边界上对数组自动建立索引Chapter 6内Array Auto Index Demo.vi
4、Array Auto Index Demo.viArray Auto Index Demo.vi的前面板和框图6.2 用循环创建数组v也可以一次一个元素或一次性地将整个数组输入到循环内v允许索引:一次一个元素v禁用索引:整个数组一次性传输到循环内v对于允许自动索引的For循环,数组进入循环时自动将循环的计数值设置为数组的元素个数,因此不需要为循环计数N连接计数值。v如果数组个数和N发生矛盾:取较小值Chapter 6内Array Auto Count Set.vi6.2.1 创建二维数组v使用两个嵌套的For循环可以创建二维数组。v外层循环创建行,内层循环创建列Chapter 6内Two Di
5、mensional Array Demo.vi6.3 数组函数6.3.1 数组大小6.3.2 初试化数组6.3.3 构建数组6.3.4 数组子集6.3.5 索引数组6.3.1 数组大小Array Size Demo.vi一维二维6.3.2 初始化数组vInitalize Array(初试化数组)函数以用户指定的元素值创建n维数组,数组中的所有元素均初始化成同一个值v创建和初始化多维数组v删除维数v输入参数确定数组的数据类型并初始化数组的每一个元素vdimension size确定数组大小Array Initialization Demo.viArray Initialization Demo.
6、vi6.3.3 构建数组vBuild Array(构建数组)函数用于合并多个数组或给数组添加元素v函数有两种类型的输入:标量和数组,因此函数可以接收数组和单值元素输入v添加输入:Add Input 或拖曳v删除输入:Remove Input 或拖曳v输入类型(元素或数组)可自动配置v讲解:Concatenate Inputs的作用Array Build Demo.viArray Build Demo.vi6.3.4 数组子集vArray Subset(数组子集)函数返回数组中从index开始的length个元素部分v数组索引从0开始Array Subset Demo.viArray Build
7、 Demo.vi6.3.5 索引数组vIndex Array(索引数组)函数访问数组的一个元素vIndexd number指定要访问的数组元素v第一个元素的索引号是0vIndex Array函数会自动调整大小以匹配连接的输入数组维数v访问多个元素或子数组v三种情况:一行、一列、一个元素Array Index Demo.viArray Index Demo.viArray Index Demo.vi练习:数组v打开LearningChapter 6Practice with Arrays.viv前面板包含4个数组和一个数组控件。完成后的VI将合并连接的输入数组和数字控件值以生成新的数组。VI将使
8、用Array Size和Array Initialize函数来创建维数合适的新数组,并将新数组的所有元素初始化为1。最后,VI计算两个新数组间的差,将结果显示在前面板上。v讲清楚此VI的任务和如何完成Practice with Arrays.vi前面板Practice with Arrays.vi框图(未完成)Practice with Arrays.vi框图(完成)6.4 多态性v多态性(Polymorphism)是LabVIEW的某些函数(如加、乘、除)接受不同维数和类型输入的能力v拥有多态性的函数是多态函数v例如:将标量添加到数组,将两个不同长度的数组相加(取较短的数据长度)v加、乘函数
9、具有多态性vPolymorphisms.vi和Polymorphisms demo.viPolymorphisms.vi标量+标量=标量标量+数组=数组(标量与每个元素相加)数组+数组=数组(两个输入数组中较短一个的数组长度)Polymorphism Demo.vi练习:使用多态性vPolymorphism Practice.viPolymorphism Practice.vi框图6.5 簇v簇(Cluster)是一种类似数组的数据结构,用于分组数据v簇可以包含不同的数据类型v访问簇的元素最好通过释放方法(unbundling)同时访问部分或全部元素,而不是通过索引一次访问一个元素v簇具有固定
10、的大小v簇和数组相似之处:都由控件和指示器组成v簇不能同时包含控件和指示器v簇通常用于将出现在框图上的有关数据分组管理,可减少连线(一捆连线)和子VI连接端子个数v框图上,只有将相同类型、相同元素数量、相同元素顺序时才能相连。v多态性应用于簇时,只需要簇具有同样顺序、同样数量的元素v举例:一个包含数字控件、水平切换开关、字符串控件、旋钮控件的簇6.6 创建簇控件和指示器v放置簇框架(在前面板)v新的簇框架有可调整大小的边缘和标签(可选)v可将数字、布尔型、字符串、图表、图形、数组等放进框架中来创建簇v簇可以包含控件和指示器,但两者不能共存v一个簇变为控件或指示器取决于放进簇中的第一个元素v从任
11、何簇元素的快捷菜单中选择Chang To Control或Chang To Indicator时,簇及其所有元素都将变成控件或指示器v前面板的现有对象也可拖曳进簇框架中6.6.1 簇顺序v簇元素按照它们放入簇中的先后顺序排序(注意不是按位置)v第一个对象标记为对象0v当删除元素时,剩余元素的顺序将自动调整v在框图Bundle和Unbundle函数上,簇顺序决定元素端子的显示顺序v如果要访问簇中单个元素,必须记住簇顺序v检查和改变簇内元素的顺序(在前面板上,从簇边缘弹出快捷菜单并选择Reorder Control in Cluster)举例说明v簇连接时应注意元素顺序(举例P184)簇顺序的重要
12、性说明6.6.2 使用簇与子VI交换数据v一个VI最多28端子v端子多时,端子将非常小,连线困难v使用簇可将相关控件或指示器组合起来v一个簇只占用一个端子,但它可以包含多个控件或指示器(但不能共存)v子VI仅使用一个端子就能传递多个输出6.7 簇函数6.7.1 Bundle函数6.7.2 Unbundle函数6.7.3 在框图中创建簇常数6.7.4 使用多态性簇6.7.1 Bundle函数vBundle函数用于将若干独立元素装配到一个新簇中,或者替换现有簇中的元素v簇内元素的顺序和Bundle函数的输入顺序相同(从上到下)Cluster Bundle Demo.viv思考:当需要替换或改变簇的
13、一或两个或部分元素的值,但又不希望影响其它元素时,怎么办?v提示:利用Bundle函数中间的输入端子Cluster Bundle Demo.viX0 x轴原点1 X轴增量Cluster Element Replacement.vi前面板Cluster Element Replacement.vi框图6.7.2 Unbundle函数vUnbundle函数用于从簇中提取单个组件v输出组件按簇顺序从上到下排列v在创建正确数量的输出端子前,簇连线是断开的v当把一个输入簇连接到一个大小合适的Unbundle函数时,先前空的输出端子将显示簇中数据类型的符号v思考:bundle by Name的用法?v U
14、nbundle by Name的用法?Cluster Unbundle Demo.vi前面板Cluster Unbundle Demo.vi框图6.7.3在框图中创建簇常量v选择Cluster Constant,可以创建簇框架v在簇框架内放置合适数据类型的常量(拖曳或选择Creat-Constant)6.7.4 使用多态性簇v可以用算数函数处理数字簇v可以使用字符串数字转换函数将数字簇转换成字符串簇ClusterScaling.vi前面板ClusterScaling.vi框图6.8 搭积木:测量容器(自学)6.9 课后阅读:LabVIEW监控中世纪钟楼v自学,不要求6.10 小结v本章主要内容:数组和簇。v数组是一种由相同类型的数据元素组成的大小可变的集合v簇是一种由混合类型的数据元素组成的大小固定的集合v多态性:函数适应不同的输入数据类型、维数或表示方法的能力。v关键术语:P195作业(自己做,不用交)vP198 6.6、6.7