版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章仿真技术概述本章主要内容如下:1.1科研工作的基本方法
1.2模型及其建立1.3仿真技术及其重要性1.1
科研工作的基本方法解析法运用已掌握的理论知识,对所研究的对象进行理论方面的分析、计算及综合。最佳路径问题庞得里亚金极大值原理工程最优问题1.1
科研工作的基本方法解析法运用已掌握的理论知识,对所研究的对象进行理论方面的分析、计算及综合。Routh判据英国E.J.Routh建立Routh-HurwitzStabilityCriteria(1875年)
1.1
科研工作的基本方法解析法运用已掌握的理论知识,对所研究的对象进行理论方面的分析、计算及综合。一级倒立摆
工程动力学问题F=ma1.1
科研工作的基本方法实验法
在所建立的实际系统(或模型)上,利用各种仪器仪表,通过施加一定类型的激励信号,测取系统响应来确定系统的性能。系统模型1.1
科研工作的基本方法仿真实验法
在模型上(物理的/数学的)所进行的系统性能分析与研究方法。数学模型1.1
科研工作的基本方法仿真实验法
在模型上(物理的/数学的)所进行的系统性能分析与研究方法。虚拟模型1.1
科研工作的基本方法仿真实验法
在模型上(物理的/数学的)所进行的系统性能分析与研究方法。实物模型1.1
科研工作的基本方法仿真实验法
在模型上(物理的/数学的)所进行的系统性能分析与研究方法。仿真实验性能比较:数学模型虚拟模型实物模型实物原型仿真精度低高1.1
科研工作的基本方法混合法
解析法+实验法+仿真——可通过实验或仿真确定和修正理论模型中的有关参数和模型的结构.WX2X1m2KsKtuub汽车主动悬架实验模型m1汽车主动悬架理论模型1.1
科研工作的基本方法猜想法
又称为“假想法”,通过人们对所研究问题的“直觉”,提出“可能的”结果/结论,利用“反演/推理/证明”的方法进行“创造性”的研究和发现。哥德巴赫猜想相对论假说电磁波设想1.2
模型及其建立模型的重要性勾股定理1.2
模型及其建立模型的重要性把世间的现象/问题上升到“数学抽象/数学模型”的理论高度是现代科学发现与技术创新的基础。“实验、归纳、推演”是建立系统“数学模型”的重要手段/方法/途径。“数学模型”是人们对自然世界的一种抽象理解,它与自然世界/现象/问题具有“性能相似”的特点。1.2
模型及其建立建模三要素:目的,方法,验证目的要明确飞行器目的2飞行器的结构强度目的1飞行器的动态性能流体力学结构力学方法1方法21.2
模型及其建立建模三要素:目的,方法,验证方法要恰当逻辑推理方法:归纳、推演、类比、移植机理建模法:白箱问题实验建模法:黑箱问题综合建模法:机理+实验结果要验证数学模型——必要条件实物模型——充要条件实际应用——结果检验3.建模过程1.2
模型及其建立1.相似性原理
1.3
仿真技术及其重要性彼此相似的现象必定具有数值相同的相似准则。几何相似1.相似性原理
1.3
仿真技术及其重要性彼此相似的现象必定具有数值相同的相似准则。环境相似1.相似性原理
1.3
仿真技术及其重要性彼此相似的现象必定具有数值相同的相似准则。性能相似1.3
仿真技术及其重要性仿真利用相似性原理,借助实验模型或计算机软件对所研究的对象进行分析。利用计算机软件进行仿真是目前仿真分析中的主要方法。1.3
仿真技术及其重要性仿真技术的应用虚拟现实(VR)仿真实验的高级形式可视化/真实性有助于人们的创造与想象力的发挥关键之处感知设备表现装置三大特点沉浸(Immersion)交互(Interaction)想象(Imagination)1.3
仿真技术及其重要性1.3
仿真技术及其重要性仿真技术的应用虚拟现实(VR)感知设备1.3
仿真技术及其重要性仿真技术的应用虚拟现实(VR)表现装置1.3
仿真技术及其重要性仿真技术的应用虚拟样机虚拟现实仿真技术1.3
仿真技术及其重要性仿真技术的应用虚拟样机虚拟制造1.3
仿真技术及其重要性仿真技术的应用虚拟样机虚拟环境1.3
仿真技术及其重要性仿真技术的应用工程应用车辆肇事仿真1.3
仿真技术及其重要性仿真技术的应用工程应用飞行器设计1.3
仿真技术及其重要性仿真技术的应用工程应用联合仿真1.3
仿真技术及其重要性仿真常用的工具软件ADAMS(AutomaticDynamicAnalysisofMechanicalSystems)运动学、动力学、机电一体化系统仿真AMESim流体、机械、电磁以及控制等复杂系统建模和仿真PSPICE直流/交流电路、瞬态特性优化设计、数字模拟混合电路、电路绘图——仿真一体化ANSYS结构、热、流体、电磁和声学运用有限元分析软件MATLAB以科学计算见长的多用途仿真软件,尤其适用于机电系统的动力学仿真,是本课程主要学习的软件。1.3
仿真技术及其重要性仿真技术的发展趋势在硬件上,基于多CPU的并行处理技术的全数字仿真技术将有效的改善仿真系统的“实时性”;基于网络技术的分布式数字仿真系统将广泛应用;基于虚拟现实技术的“多媒体环境条件下的仿真技术”将推进军事、工业、生活、娱乐等领域的深层次应用;“离散事件系统”的仿真问题将成为人们研究的另一热点;“仿真技术”将成为高等理工院校学生培养的重要技术。主要教学参考书第二章MATLAB基础本章主要内容如下:
2.1 概述 2.2 MATLAB的工作环境2.3 MATLAB命令窗口的主要操作 2.4 m文件的编写与调试 2.5 使用MATLAB帮助2.1概述MATLAB软件是由美国MathWorks公司推出的用于数值计算和图形处理的科学计算软件。MATLAB是英文MATrixLABoratory(矩阵实验室)两个词的前三个字母组合而成的,它是一种以矩阵运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘图的需求。MATLAB编程运算与人进行科学计算的思路和表达方式完全一致,区别于其它高级语言,具有用法简易、可灵活运用、程序结构强又兼具延展性。MATLAB还可通过与C\C++的扩展编程,实现对外部硬件的通讯与控制,从而使仿真和实验有机地融合在一起。MATLAB中的Simulink是一种高效的仿真工具,使得对机电系统的动态仿真十分简单易行。2.2MATLAB工作环境MATLAB的工作环境就是一系列便于使用MATLAB函数和文件的工具。基本的工具包括启动和退出MATLAB,使用MATLAB的桌面,使用MATLAB的函数,以及MATLAB的在线帮助(Help)。其它的工具则有:工作空间、路径搜索、文件操作、数据输入输出、编辑和调试M文件以及改善M文件的性能,资源控制系统的利用等。
本节主要就MATLAB桌面(MATLABDesktop)中的各应用窗口的主要功能分别作一简单介绍。MATLAB2016的交互界面目录可点击桌面左下角的[Start]弹出。2.2.1MATLAB桌面(MATLABDesktop)2.2.1MATLAB桌面(MATLABDesktop)当前目录浏览器(CurrentDirectoyBrowser)
工作空间浏览器(WorkspaceBrowser)工作空间(workspace)MATLAB16b的操作桌面略有不同,其交互界面目录可点击桌面左下角的[Start]弹出。2.2.2指令窗口(CommandWindow)在指令窗口内执行的MATLAB主要操作有:运行函数和输入变量控制输入和输出执行程序,包括M文件和外部程序保存一段日志打开或关闭其他应用窗口各应用窗口的参数选择在提示符后输入变量和函数MATLAB显示结果2.2.3历史指令窗口(CommandWindow)历史指令窗记录着用户在命令指令窗中所输入过的所有指令行,且所有这些被记录的指令行都能被复制,并送到指令窗中再运行。2.2.4当前目录浏览器(CurrentDirectoryBrowser)当前目录窗口中显示了MATLAB当前工作目录下的所有文件夹与文件,以便用户对当前目录下的文件进行管理。2.2.5工作空间浏览器(WorkspaceBrowser)工作空间由运行MATLAB的程序或命令所生成的所有变量和MATLAB本身提供的常量构成。MATLAB6.x后才提供。早期版本是在命令窗口中键入who查看变量名,或者键入whos命令查看变量名、变量大小和数据类型等内容。工作空间窗口以列表形式显示了MATLAB工作区中当前所有变量的名称及其属性,属性中包括了变量的类型、长度及其占用空间大小.2.2.6交互界面分类目录窗(LaunchPad)MATLAB6.x后具有交互界面分类目录窗口,其中提供了用户在机器中已经安装的所有MATLAB工具包、演示及帮助信息的目录。2.2.7文件编辑/调试器(Editor/debugger)MATLAB通过自带的M文件编辑/调试器来创建和编辑M文件。M文件(带.m扩展名的文件)类似于其它高级语言的源程序。M文件编辑器可用来对M文件进行编辑和交互调试,也可阅读和编辑其它ASCⅡ码文件。M文件编辑/调试器窗口由菜单栏、工具条和文本编辑区组成,是标准的windows风格。2.2.7文件编辑/调试器(Editor/debugger)进入MATLAB文件编辑器的方法如下:点击MATLAB桌面上的图标,打开空白的M文件编辑器。点击MATLAB桌面上的图标,填写所选文件名后,再点[打开],即可展示相应M文件编辑器。用鼠标左键双击当前目录窗中的所需M文件,可直接引出相应的M文件编辑器。2.3MATLAB指令窗口的主要操作2.3.1数值、变量和表达式数值MATLAB的数值采用习惯的十进制表示,以下记述都是合法的:3,-99,0.001,9.578,1.3e-4,2.78e23变量命名规则变量名、函数名对字母大小写敏感。MAY、may表示不同变量。变量名第一个字母必须是英文字母,且不能超过31个字符。变量名中不得包含空格、标点但可包含下连符,如my_var是合法的变量名。2.3.1数值、变量和表达式MATLAB默认的预定义变量
ans 计算结果的缺省变量名
i或j 虚单元
pi 圆周率
Inf或inf 无穷大,如1/0NaN或nan非数(不是一个数),如0/0realmax 最大正实数realmin 最小正实数【说明】用户在编写指令和程序时,尽可能避免对预定义变量重新赋值。2.3.1数值、变量和表达式
运算符和表达式数学表达式运算符MATLAB表达式加a+b+a+b减a-b-a-b乘a×b*a*b除a÷b/或\a/b或b\a幂ab^a^b【说明】所有运算定义在复数域上。用“/”表示“左除”,“\”表示“右除”。对标量运算左、右除相同。2.3.2指令窗操作
运行函数和键入变量在命令窗口的提示符“>>”下,可以直接输入变量。例如要创建一个3×3矩阵,只须在命令窗口中输入: >>A=[1,2,3;4,5,6;7,8,10]
回车后,命令窗口出现: A=1234567810
在命令窗口的提示符“>>”下,如果要运行函数,只需输入函数文件名,然后回车,MATLAB就会显示运行结果。2.3.2指令窗操作
指令行中的部分标点符号名称标点作用空格输入量之间、数组元素之间分隔符逗号,分隔符黑点.数值中表示小数点分号;不显示计算结果指令的“结尾”标志;数组行间分隔符注释号%注释行的“启首”标志圆括号()数组援引时用方括号[]输入数组时用续行号…由三个以上连续黑点构成在指令窗中输入以下指令,观察运行结果:指令1:输入注释行,无结果显示。指令2:输入代数运算式,并显示计算结果:-0.8148(ans为MATLAB默认结果变量名)。指令3:输入代数运算式(使用续行号),并显示计算结果:47。指令含义指令含义cd设置当前工作目录edit打开M文件编辑器clf清除图形窗exit关闭/退出MATLABclc清除指令窗中显示内容quit关闭/退出MATLABclear清除MATLAB工作空间保存的变量mkdir创建目录dir列出指定目录下的文件和子目录清单type显示指定M文件的内容2.3.2指令窗操作
指令窗常用控制指令2.3.2指令窗操作
指令窗指令行的编辑键名含义指令含义↑前寻式调回已输入过的指令行end使光标移到当前行的尾端↓后寻式调回已输入过的指令行Delete删去光标右边的字符←在当前行中左移光标Backspace删去光标左边的字符→在当前行中右移光标PageUp前寻式翻阅当前窗中的内容Home使光标移到当前行的首端PageDown后寻式翻阅当前窗中的内容【说明】利用以上操作可对指令窗中已输入的指令进行编辑。另外还可结合历史指令窗完成指令的编辑。2.4.1m文件特点文件的扩展名是“.m”。MATLAB在运行m文件时只是从文件中读取一条条指令,送到MATLAB中去执行。m文件运行产生的变量都是驻留在MATLAB工作空间中(与在指令窗中直接运行指令一样)。该文件中指令形式和前后位置,与解决同一问题在指令窗中输入的指令没有任何区别。为提高运算速度,编写m文件时应尽量避免使用for、while语句。2.4m文件的编写与调试m文件分为m脚本文件和m函数文件,m脚本文件可直接由MATLAB解释执行,而m函数文件则必须通过调用执行。未加说明时,m文件通常是m指脚本文件。2.4.2m文件编写和运行点击MATLAB桌面上图标,弹出M文件编辑器。将指令写入M文件编辑调试器的空白框中(通常在空白框第一行写入包含文件名的注释)。点击M文件编辑器的图标,并在保存对话框中填写目录和文件名,再按【保存】键,脚本文件即存于指定的目录上。2.4m文件的编写与调试2.4.2m文件编写和运行选中M文件编辑器下拉菜单项【Debug:Run】,即可执行该文件。如果文件有错误,则会停在出错的指令行上,并在指令窗中指出错误的类型,和出错的位置。2.4m文件的编写与调试2.5使用MATLAB帮助两个重要的帮助命令:1.help命令使用方法:help帮助主题,或lookfor帮助主题“帮助主题”可以是命令名(函数名)、目录名或者部分路径名。回车后,命令窗口中就会出现与帮助主题的“help”有关的内容。注意:命令窗口显示的MATLAB帮助信息中,是用大写字母来突出函数名的,但在使用这些函数时,应该用小写字母。可用Ctrl+C终止显示。2.demo命令使用方法:命令窗口直接键入demo即可弹出help导航器,从中可选择各种演示程序。demo命令对初学者非常有用,它提供了大量演示实例来说明MATLAB的函数和工具箱的使用。课后练习指令窗口中,键入:demo,出现MATLAB的demo演示窗口,然后选择:MATLAB下的DesktopEnvironment,选取其中的Desktopoverview等示例进行MATLAB的桌面系统学习。在命令窗口中,键入:helpwin,出现MATLAB的帮助窗口,选择:“matlab\general-Generalpurposecommands.”,了解MATLAB的工作环境及其相关命令和函数。第三章数组及其运算本章主要内容如下:3.1概述3.2数值数组的生成和寻访3.3数组运算和矩阵运算3.4非数和空数组3.5数组的关系运算和逻辑运算3.6字符串数组3.1概述MATLAB长于数值计算,而所谓数值计算,就是指计算的表达式、变量中不得包含未经定义的自由变量。数值数组(NumeralArray)和数组运算(ArrayOperations)是MATLAB的核心内容。数组是MATLAB最重要的一种内建数据类型,而数组运算则是定义在这种数据结构上的方法。本章重点介绍数值数组,其次是与数组类似其它结构体。数组:是指由一组实数或复数排成的长方阵列(Array),包括行向量、列向量和矩阵。数组的运算:无论对数组施加什么运算(加减乘除或函数)总认定那种运算对被运算数组中的每个元素平等地实施同样的操作。3.1概述变量及其赋值在命令窗口可直接输入变量并赋值,无须声明其类型和维数,MATLAB将自动处理。MATLAB的变量名称由英文大小写52个字母、数字和下划线等符号组成,并且第一个字符必须是英文字母,变量和常量最长允许31个字符。须注意的是,在默认状态下,MATLAB对字母大小写敏感。3.1概述MATLAB数据格式及显示方式MATLAB既可用传统的十进制数表达数值,也可以用科学计数表达数值,用e代表10的指数形式,用i和j来代表虚数。MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度二进制(64位),相应于十进制的16位有效数,范围为10-308~10+308。为了人机交互的友好性,数据输出显示格式有8种。可用菜单选项或format命令选择。3.2数值数组的生成和寻访3.2.1一维数组一维数组的创建逐个元素输入法借助数组编辑器可以逐个输入数组元素(对于二维数组同样适用),但也可在指令窗中直接输入。例如在指令窗中输入(数组元素之间用“
”或“,”隔开):
x=[2pi/3sqrt(3)3+5i]则将显示:x=2.00001.04721.73213.0000+5.0000i3.2数值数组的生成和寻访3.2.1一维数组一维数组的创建定数线性采样法该方法在设定的“总点数”下,均匀采样生成一维“行”数组。其通用格式为:
x=linspace(a,b,n)【说明】a、b分别是生成数组的第一个和最后一个元素,n是采样总点数。该指令与x=a:(b-a)/(n-1):b相同。此外还可通过数组运算或数组生成函数,构建某些特殊的数组。【例】一维数组的冒号生成法和定数线性采样法。>>x=(0:pi/10:pi)x=Columns1through600.31420.62830.94251.25661.5708Columns7through111.88502.19912.51332.82743.1416>>y=linspace(0,pi,11)y=Columns1through600.31420.62830.94251.25661.5708Columns7through111.88502.19912.51332.82743.1416%冒号法生成一维数组%定数(0,)线性采样法生成(1×11)数组显然这两种方法生成的一维数组是完全相同的。3.2.1一维数组一维数组的寻访数组寻访的一般格式为X(index),下标index可以是单个正整数或正整数数组。
例如对数组作如下操作:x=[2.00001.04721.73213.0000+5.0000i]>>x(3)ans=1.7321>>x([124])ans=2.00001.04723.0000+5.0000i>>x(2:end)ans=1.04721.73213.0000+5.0000i>>x(4:-1:1)ans=3.0000+5.0000i1.73211.04722.0000下标为由[]构成的数组下标为由冒号生成法构成的数组取单个数组元素3.2.2二维数组二维数组的创建直接输入法整个输入数组须以“[]”为其首尾;数组行与行之间用“;”或“回车键”隔离;数组元素用逗号或空格分离。例如要输入二维数组则在指令窗中的操作如右图所示。其中,第一个矩阵输入采用“;”分行,第二个矩阵输入采用“回车键”分行。>>A=[123;456;789]A=123456789>>A=[1,2,34,5,67,8,9]A=1234567893.2.2二维数组二维数组的创建利用M文件创建和保存数组对于经常需要调用的且比较大的数组,可专门为该数组创建一个M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。标准数组生成函数指令含义指令含义diag产生对角形数组(二维以下)rand产生均匀分布随机数组eye产生单位数组(二维以下)randn产生正态分布随机数组magic产生魔方数组(二维以下)zeros产生全0数组ones产生全1数组>>d=eye(5)%产生(5*5)的单位阵d= 1000001000001000001000001>>a=3*ones(4,5)%产生4行5列全3数组a= 33333333333333333333
>>b=diag(a)%取a阵对角元b= 3333>>c=diag(b)%生成对角元为数组b对 角阵(与diag([3,3,3,3]) 效果相同)c=3000030000300003>>zeros(5,6)%生成5行6列的全0阵ans=0000000000000000000000000000003.2.2二维数组二维数组的寻访和赋值全元素标识和赋值这是一种最常用的标识方式,对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标。如A(3,5)等。单下标标识和赋值这是只用一个下标来指明元素在数组中的位置。对二维数组采用“单下标”标识,应先对数组的所有元素进行“一维编号”,即先设想把二维数组的所有列按先左后右的次序,首尾相接排成“一维长列”;然后自上往下对元素位置进行编号。>>a=zeros(2,5)a=0000000000(生成2行5列0数组)>>a(:)=-4:5a=-4-2024-3-1135(对A进行单下标全元素赋值)3.2.2二维数组二维数组的寻访和赋值利用MATLAB的冒号运算,可方便地进行数组(矩阵)的子数组(子矩阵)的寻访和赋值。冒号表达式:
s1:s2:s3式中,s1:起始值;
s2:步长(省略为1);
s3:终止值。例如:A(:,j):表示A矩阵第j列全部元素
A(i,:):表示A矩阵第i行全部元素
A(1:3,2:4):表示对A矩阵取第一到第三行,第二到第四列中所有元素构成的子矩阵。>>s=[135];a(s)=10:10:30a=
10203024-3-1135(对A进行单下标行数组元素赋值)3.3.1数组运算的常用函数函数数组的运算规则对于(m×n)数组X=[xij]m×n,函数f(·)的数组运算规则是指:
f(X)=[f(xij)]m×n3.3
数组运算和矩阵运算例如对(3×3)数组A进行2次乘方运算A2,只需对数组中每个元素进行乘方运算aij2即可,如右图所示。>>A=[123;456;789]A=123456789>>A.^2ans=1491625364964813.3.1数组运算的常用函数常用函数3.3
数组运算和矩阵运算名称含义名称含义名称含义sin正弦log2以2为底的对数real复数实部cos余弦pow22的幂sign符号函数tan正切log自然对数rem求余数asin反正弦log10常用对数mod模除求余acos反余弦angle相角(弧度)sqrt平方根atan反正切conj复数共轭abs模或绝对值exp指数imag复数虚部>>mod(A,2)ans=101010101例如对数组>>log(A)ans=00.69311.09861.38631.60941.79181.94592.07942.1972>>exp(A)ans=1.0e+003*0.00270.00740.02010.05460.14840.40341.09662.98108.1031>>sign(A)ans=111111111>>real(A)ans=123456789>>angle(A)ans=0000000003.3.2矩阵运算矩阵运算不同于数组运算,要符合矩阵运算的规则数组运算矩阵运算指令含义指令含义A.'非共轭转置A'共轭转置A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s.*A标量s分别与A元素之积s*A标量s分别与A元素之积A.^nA的每个元素自乘n次A^nA阵为方阵时,自乘n次A+B对应元素相加A+B矩阵相加A.*B对应元素相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除Blog(A)对A的各元素求对数Logm(A)A的矩阵对数函数C=-4.0000+1.0000i-3.0000+3.0000i-2.0000+2.0000i-1.0000+3.0000i0+2.0000i1.0000+5.0000i2.0000+2.0000i3.0000+5.0000i4.0000+7.0000ians=-4.0000+1.0000i-1.0000+3.0000i2.0000+2.0000i-3.0000+3.0000i0+2.0000i3.0000+5.0000i-2.0000+2.0000i1.0000+5.0000i4.0000+7.0000ians=-4.0000-1.0000i-1.0000-3.0000i2.0000-2.0000i-3.0000-3.0000i0-2.0000i3.0000-5.0000i-2.0000-2.0000i1.0000-5.0000i4.0000-7.0000iC=A+B*iC.'C'%例二维数组、矩阵运算A=[-4,-3,-2;-1,0,1;2,3,4];B=[1,3,2;3,2,5;2,5,7];C=A+B*i%生成复数数组C.',C'%非共轭转置和共轭转置A./B,A/B%数组、矩阵右除B.\A,B\A%数组、矩阵左除A.*B,A*B%数组乘和矩阵乘ans=-4.0000-1.0000-1.0000-0.333300.20001.00000.60000.5714ans=-2.5000-1.50001.5000-1.0000-0.54550.81820.50000.40910.1364ans=-4.0000-1.0000-1.0000-0.333300.20001.00000.60000.5714ans=-3.5000-3.0000-2.5000-1.9545-1.6364-1.31822.68182.45452.2273A./BA/BB.\AB\Aans=-4-9-4-30541528ans=-17-28-37125193247,
A.*BA*BA=[-4,-3,-2;-1,0,1;2,3,4];B=[1,3,2;3,2,5;2,5,7];在程序流控制和逻辑、模糊推理中,都需要对一类是非问题作出“是真”、“是假”的判断。为此,MATLAB设计了关系操作、逻辑操作和一些相关函数。虽在其它程序语言中也有类似的关系、逻辑运算,但MATLAB作为一种比较完善的科学计算环境,有其自身的特点。MATLAB约定:在所有关系、逻辑表达式中,作为输入的任何非0数都被看成是“逻辑真”,只有0被认为是“逻辑假”。所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0和1组成的“逻辑数组”(LogicalArray)。在此数组中的1表示“真”,0表示“假”。逻辑数组是一种特殊的数值数组,与“数值类”有关的操作和函数对它也同样适用;但它又不同于普通的“数值”,它还表示着对事物的判断结论“真”与“假”。因此它又有其自身的特殊用途,如数组寻访等。3.4关系操作和逻辑操作3.4.1关系操作关系操作指令3.4关系操作和逻辑操作指令含义指令含义<小于>=大于等于<=小于等于==等于>大于~=不等于【说明】标量与数组比较比较在此标量和数组每个元素之间进行,比较结果与被比较数组同维。数组与数组比较两数组的维数必须相同,比较在两数组相同位置上的元素间进行,比较结果与被比数组同维。关系运算示例:>>A=1:9,B=10-A,r0=(A<4),r1=(A==B),r2=(A>B)A=123456789B=987654321r0=111000000r1=000010000r2=0000011113.4.2逻辑操作逻辑操作指令3.4关系操作和逻辑操作指令含义指令含义指令含义&与、和|或~否、非【说明】标量与数组逻辑运算运算比较在标量与数组每个元素之间进行,结果与数组同维。数组与数组逻辑运算参与运算的数组必须同维,运算在两数组相同位置上的元素间进行,运算结果与数组同维。逻辑操作示例1:>>A=1:9,B=10-A,r0=~(A<4),r1=(A>B)&(A<8),r2=(A>B)|(A<3)A=123456789B=987654321r0=000111111判断A中不小于4的元素r1=000001100判断A中小于8又比B大的元素r2=110001111判断A中小于3或比B大的元素%逻辑操作示例2:逐段解析函数的计算和表现t=linspace(0,3*pi,500);y=sin(t);%产生正弦波z1=((t<pi)|(t>2*pi)).*y;%获得整流半波w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);%关系逻辑数值运算w_n=~w; z2=w*sin(pi/3)+w_n.*z1; %获得削顶整流半波subplot(1,3,1),plot(t,y,':r'),ylabel('y')subplot(1,3,2),plot(t,z1,':r'),axis([010-11])subplot(1,3,3),plot(t,z2,'-b'),axis([010-11])3.5字符串数组字符串数组(简称串数组)主要用于数据可视化、图形用户界面GUI制作等,它与数值数组为不同的数据类(Class),如数值标量在内存中占8个字节,而一个字符则只需2个字节。本节对字符串数组作一简要介绍。3.5.1字符串数组创建与操作字符变量的创建方式在指令窗中,将待建的字符放在单引号对''中,再按[Enter]键(单引号对必须在英文状态下输入)。如在指令窗中输入:
a=‘university’则a即为字符变量,也为串数组。>>a='anuniversity'a=anuniversity3.5.1字符串数组创建与操作串数组的大小
串数组中每个字符(包括空格和标点)都占据一个元素位,上面输入的数组a的大小可用下面指令获得:
>>size(a)ans=113表示这是一个113的数组。串数组的元素标识在一维串数组中,MATLAB按自左至右的次序标识字符的位置,如:>>b=a(end:-1:1)b=ytisrevinuna3.5.1字符串数组创建与操作中文字符串数组
在中文字符串数组中,每个字符也占一个元素位置,如串数组中每个字符(包括空格和标点)都占据一个元素位,上面输入的数组a的大小可用下面指令获得:
>>A='武汉科技大学',size(A)A=武汉科技大学ans=16由小串构成长串>>B=[A,'','机械自动化学院']B=武汉科技大学机械自动化学院3.5.1字符串数组创建与操作多行串数组的创建直接创建
多行串数组的直接创建时,要保证同一串数组的各行字符数要相等:利用串操作函数创建串操作函数按最长行设置每行长度,其它行的尾部用空格填充:>>AB=[A,'';'机械自动化学院'],size(AB)AB=武汉科技大学机械自动化学院ans=27>>AC=char(A,'机械自动化学院'),size(AC)AC=武汉科技大学机械自动化学院ans=273.5.2串操作函数指令含义指令含义blanks(n)创建n个空格串lower(s)使s里英文字母全部小写deblank(s)删去串尾部的空格符strcat(s1,s2,…)把串s1、s2等连接成长串eval(s)把串s当作MATLAB指令运行strncomp(s1,s2,n)若串s1、s2的前n个字符相同,则判“真”给出逻辑1ischar(s)s是字符串,则判“真”给出逻辑1strcomp(s1,s2)若串s1、s2相同,则判“真”给出逻辑1isspace(s)以逻辑1指示s里空格符的位置strrep(s1,s2,s3)串s1中所有出现s2的地方替换为s3isletter(s)以逻辑1指示s里文字符的位置upper(s)使s里英文字母全部大写>>a='thisisa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程进度规格确认回复函6篇范文
- 远离网瘾远离伤害争做阳光学子,五年级主题班会课件
- 季度财务报表提交商洽函(7篇范文)
- 人工智能通识 课后习题和答案 李方园
- 橙色活力:运动点亮生活小学主题班会课件
- 北京华恒智信赋能通讯设备企业搭建人岗匹配组织体系
- 关于租赁面积扩大事务的通知函编写指南6篇范文
- 临床护士应知应会及三基理论知识考试题库与答案
- 2025年国家开放大学电大法学本科《法律文书》期末考模拟试题及答案
- 开放大学电大专科《刑事诉讼法学》期末模拟试题及答案
- 运营部总监KPI考核
- 应急水量调度预案
- 沪教版八年级数学上讲义
- 国家职业技术技能标准 4-03-02-06 营养配餐员 人社厅发202226号
- 2024年广西各市统计局招聘统计协管员(协统员)历年(高频重点提升专题训练)共500题附带答案详解
- 新型冠状病毒肺炎中医病因及辨证研究进展
- 金融行业网络安全培训
- 装饰装修工程拟投入的主要施工机械设备表
- 四百字作文格子稿纸(可打印编辑)
- 颅内动脉瘤的护理课件
- 2023年衡阳市蒸湘区体育教师招聘笔试模拟试题及答案
评论
0/150
提交评论