清华大学MATLAB课件 第二讲.ppt_第1页
清华大学MATLAB课件 第二讲.ppt_第2页
清华大学MATLAB课件 第二讲.ppt_第3页
清华大学MATLAB课件 第二讲.ppt_第4页
清华大学MATLAB课件 第二讲.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020年8月27日,第1页,MATLAB 2006a 简明教程 清华大学出版社,第2章 基本使用方法(2),2020年8月27日,第2页,常用的操作命令和快捷键(2/3),常用的操作命令,2020年8月27日,第3页,常用的操作命令和快捷键(3/3),常用的操作快捷键,2020年8月27日,第4页,MATLAB 2006a 的数据类型,整数 浮点数 复数 逻辑变量 各种数据类型之间的运算 各种数据类型之间的转换 数据类型操作函数 变量 系统预定义的特殊变量,2020年8月27日,第5页,整数,MATLAB 支持8位、16位、32位和64位的有符号和无符号整数数据类型。 上述整数数据类型除了定

2、义范围不同外,具有相同的性质。,2020年8月27日,第6页,定义整数变量,定义变量:由于 MATLAB 默认的数据类型为双精度型,因此在定义整形变量时,需指定变量的数据类型。,2020年8月27日,第7页,整数运算(1/2),运算:类型相同的整数之间可以进行运算,返回相同类型的结果。在进行加、减和乘法运算时比较简单,在进行除法运算时稍微复杂一些,因为在多精度情况下,整数的除法不一定能得到整数的结果。在进行除法时,MATLAB 首先将两个数视为双精度类型进行运算,然后将结果转化为相应的整形数据。 MATLAB 中不允许进行不同整数类型之间的运算。,2020年8月27日,第8页,整数运算(2/2

3、),由于每种整数数据类型都有相应的取值范围,因此数学运算有可能产生结果溢出。MATLAB 利用饱和处理处理此类问题,即当运算结果超出了此类数据类型的上限或下限时,系统将结果设置为该上限或下限。 例 2-10 整数运算中的数据溢出 x=int8(100); y=int8(90); z=x+y z = 127 x-3*y ans = -27 x-y-y-y ans = -128,结果溢出上限,因此结果为127,3*y溢出上限,结果为127,继续计算,得到最后结果-27,计算x-y-y-y时,从左到右进行计算,结果溢出下限,因此结果为-128,2020年8月27日,第9页,浮点数(1/2),MATL

4、AB 的默认数据类型是双精度类型(double)。为了节省存储空间,MATLAB 也支持单精度数据类型的数组。 单精度和双精度数据类型的取值范围和精度可以通过例 2-11 的方式进行查看,2020年8月27日,第10页,浮点数(2/2),例 2-11 单精度和双精度数据类型的取值范围和精度 realmin(single) % 最小正浮点数 ans = 1.1755e-038 realmax(single) % 最大正浮点数 ans = 3.4028e+038 eps(single) % 浮点运算的相对精度 ans = 1.1921e-007 realmin(double) ans = 2.22

5、51e-308 realmax(double) ans = 1.7977e+308 eps(double) ans = 2.2204e-016 创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。单精度数据类型的数据进行运算时,返回值为单精度。,2020年8月27日,第11页,复数(1/2),复数由两个部分组成:实部和虚部。基本虚数单位等于,在 MATLAB 中虚数单位由 i 或者 j 表示。 MATLAB 中可以通过两种方法创建复数,第一种方法为直接输入法,另一种创建复数的方法为通过 complex 函数。,2020年8月27日,第12页,复数(2/2),complex 函数的调用方

6、法如下。 c = complex(a,b),返回结果 c 为复数,其实部为 a,虚部为 b。输入参数 a 和 b 可以为标量,或者维数、大小相同的向量、矩阵或者多维数组,输出参数和 a 和 b 的结构相同。a 和 b 可以有不同的数据类型,当 a 和 b 为各种不同的类型时,返回值分别为: 当 a 和 b 中有一个为单精度时,返回结果为单精度; 如果 a 和 b 其中一个为整数类型,则另外一个必须有相同的整数类型,或者为双精度型,返回结果 c 为相同的整数类型。 c = complex(a),只有一个输入参数,返回结果 c 为复数,其实部为 a,虚部为 0。但是此时 c 的数据类型为复数。,2

7、020年8月27日,第13页,逻辑数组(1/5),逻辑数据类型通过 1 和 0 分别表示逻辑真和逻辑假。一些 MATLAB 函数或操作符会返回逻辑真或逻辑假表示条件是否满足。如表达式 (5 * 10) 40 返回逻辑真。 在 MATLAB 中,存在逻辑数组,如下面的表达式返回逻辑数组: 30 40 50 60 70 40 ans = 0 0 1 1 1,2020年8月27日,第14页,逻辑数组(2/5),逻辑数组的创建 创建逻辑数组的最简单的方法为直接输入元素的值为 true 或者 false 逻辑数组也可以通过逻辑表达式生成,2020年8月27日,第15页,逻辑数组(3/5),MATLAB

8、中返回逻辑值的函数和操作符,2020年8月27日,第16页,逻辑数组(4/5),逻辑数组的应用 用于条件表达式 如果仅当条件成立时执行某段代码,可以应用逻辑数组进行判断和控制 用于数组索引 在 MATLAB 中支持通过一个数组对另一个数组进行索引 (例:2-18,2-19),2020年8月27日,第17页,逻辑数组(5/5),逻辑数组的判断 MATLAB 中提供了一组函数用于判断数组是否为逻辑数组,2020年8月27日,第18页, c1,1=pi; c1,2=1; c1,3=false; c1,4=isnan(nan); c1,5=magic(5); c = 3.1416 1 0 1 5x5

9、double for k=1:5, x(k)=islogical(c1,k); end x x = 0 0 1 1 0,例2-20,2020年8月27日,第19页,各种数据类型之间的运算,在上面介绍的各种数据类型中,只有双精度数据类型可以与其他数据类型数据进行运算,返回结果为双精度外的另一个数据的数据类型。,2020年8月27日,第20页,各种数据类型之间的转换,在 MATLAB 中,各种数据类型之间可以互相转化,转化方式为: 1)datatype(variable),其中 datatype 为目标数据类型,variable 为待转化的变量; 2)cast(x,type),将x的类型转化为ty

10、pe指定的类型。 转化时,如果由高精确度数据类型转化为低精确度数据类型,则对数据进行四舍五入;如果由定义范围大的数据类型转化为定义范围小的数据类型,则返回目标数据类型的上限或下限。,2020年8月27日,第21页,数据类型操作函数,其中的 type 包括 numeric、integer、float 和所有的数据类型。,2020年8月27日,第22页,变量,MATLAB 的变量命名规则与其他计算机语言类似: 首先,变量名必须是一个单一的词,不能包含空格,另外其命名必须符合下列规则: 变量名区分大小写。如 pi 和 Pi 是两个不同的变量。在命令窗口中输入如下的命令,查看其结果。 变量名长度不超过

11、63个字符,超过的部分将会被忽略。 变量名必须以字母开始,其后可以为字母、数字或者下划线。MATLAB 中的变量名不支持其他符号,因为其他符号具有特殊的意义。,2020年8月27日,第23页,系统预定义的特殊变量,2020年8月27日,第24页,MATLAB 中的常用数学函数,MATLAB 提供了一系列的函数支持基本的数学运算,这些函数中的大多数调用格式和我们平时的书写习惯一致,方便用户记忆和书写。 (表2-1015),2020年8月27日,第25页,MATLAB 2006a 的操作符,关系运算符 MATLAB 的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。MATLA

12、B 的关系运算符包括所有常用的比较运算符,如表所示,2020年8月27日,第26页,逻辑运算符,逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。MATLAB 中的逻辑运算符如表所示。,2020年8月27日,第27页,运算符优先级,MATLAB 在执行含有关系运算和逻辑运算的数学运算时,同样遵循一套优先级原则。MATLAB 首先执行具有较高优先级的运算,然后执行具有较低优先级的运算;如果两个运算的优先级相同,则按从左到右的顺序执行。MALTAB 中各运算符的优先级顺序如表2-18所示,表中按照优先级从高到低的顺序排列各运算符。,2020年

13、8月27日,第28页,MATLAB 2006a 的基本数学函数,位操作函数 逻辑运算函数 集合函数 时间与日期函数,2020年8月27日,第29页,MATLAB 2006a 脚本编程,对于一些简单的问题,当需要的命令数很少时,用户可以直接在 MATLAB 的命令窗口中输入命令。但是,对于多数问题,所需的命令较多,或者需要逻辑运算,进行流程控制,此时采用直接输入命令的方法则会引起不便。针对这些问题,一个合理的解决方法是使用脚本文件。脚本文件不接受输入参数,不返回任何值,而是代码的结合,该方法允许用户将一系列 MATLAB 命令输入到一个简单的脚本文件中,只要在 MATLAB 命令窗口中执行该文件

14、,则会依次执行该文件中的命令。 在使用脚本文件时需要注意一点:当当前工作区中存在与该脚本同名的变量时,则当输入该文件名时,系统将其作为变量名执行。,2020年8月27日,第30页,MATLAB 2006a 简明教程 清华大学出版社,第3章 数组和数组运算,2020年8月27日,第31页,教学目标,掌握数组的创建方法 掌握数组的寻址及排序 掌握数组的运算 了解多维数组及其操作,2020年8月27日,第32页,教学内容,数组的创建方法 数组寻址 数组排序 数组运算 多维数组及其操作,2020年8月27日,第33页,数组的创建方法(1/5),一维数组的创建 要想在MATLAB 中创建一个一维数组,用

15、户只需先输入一个左方括号,然后输入每个数值并用逗号(或者空格)隔开,最后用一个右方括号结束。,2020年8月27日,第34页,数组的创建方法(2/5),二维数组的创建 创建二维数组与创建一维数组的方式类似在创建二维数组时,用逗号或者空格区分同一行的不同元素,用分号或者软回车(Shift + Enter)区分不同行。,2020年8月27日,第35页,数组的创建方法(3/5),复数数组的创建 在MATLAB中,空格的功能为分隔数组元素,在其他情况下,MATLAB 通常不解析空格。因此,如果数组中包含复数元素,这些元素中不能间杂空格,如果存在空格则需要用括号扩起来。,2020年8月27日,第36页,

16、数组的创建方法(4/5),用其他方式生成数组 等差数组的生成 在 MATLAB 中,可以利用冒号生成等差数组。格式为:数组名=开始数字:公差:结束数字,公差默认为1。 用数组生成函数生成数组 eye:生成单位矩阵 linspace:生成线性分布的向量 rand:生成随机数组,数组元素值均匀分布,2020年8月27日,第37页,数组寻址,数组中总是包含多个元素,因此在对数组的单个元素或者多个元素进行访问时,需要对数组进行寻址运算。 在MATLAB中,数组寻址是通过对数组下标的访问来实现。 如果需要访问数组中的多个数据,可以通过下标数组进行寻址访问。 当下标数组为利用冒号表示的等差数组时,可以省略

17、下标数组的中括号(如果下标数组不是等差数组,中括号不能省略,如果省略通常理解为对多维数组进行访问)。,2020年8月27日,第38页,数组排序,在很多时候我们需要对一个给定的数据向量进行排序。为完成这一操作,MATLAB 提供了 sort 函数,该函数将任意给定的序列进行排序。 sort 函数的调用格式有: B = sort(A) B = sort(A,dim) B = sort(.,mode) B,IX = sort(.) 其中的 B 为保存结果的数组;A 为待排序的数组,当 A 为多维数组时,用 dim 指定需要排序的维数(默认为1);mode 为排序的方式,可以取值“ascend”和“d

18、escend”,分别表示升序和降序,默认为升序;IX 用于存储排序后的下标数组(对应于原数组的下标)。,2020年8月27日,第39页,数组运算,内容: 数组的数值运算 数组的加减法 数组的乘除法 数组的乘方 数组的关系运算,2020年8月27日,第40页,数组的加减法,数组加减法为数组元素的加减法,与矩阵加减法相同。利用运算符“+”和“-”实现该运算。需要注意的是相加或相减的两个数组必须有相同的维数,或者是数组与数值相加减。(例3-11),2020年8月27日,第41页,数组的乘除法,数组乘除为元素的乘除,通过运算符“.*”和“./”来实现。运算时需要两个数组有相同的维数,或者数组与数值相乘除。(例3-12) 注意:在进行除法操作时,作为分母的数组中不能包含 0 元素。(例3-13) 将警告被0除,输出结果为Inf,2020年8月27日,第42页,数组的乘方,数组乘方用符号“.”实现。数组乘方运算以三种方式进行。 底为数组,指数为标量的形式。这种形式的结果是将数组的每个元素进行指数相同的乘方。返回的结果为与底维数相同的数组,结果数组的每个元素为底中相应元素的乘方。 底为标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论