MATLAB的基本使用方法.ppt_第1页
MATLAB的基本使用方法.ppt_第2页
MATLAB的基本使用方法.ppt_第3页
MATLAB的基本使用方法.ppt_第4页
MATLAB的基本使用方法.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

2019/7/21,1,第2章 基本使用方法,教学内容: 简单的数学运算 常用的操作命令和快捷键 MATLAB R2010a 的数据类型 MATLAB R2010a 的运算符 MATLAB的一些基础函数 MATLAB脚本文件,2019/7/21,2,MATLAB变量,(1)MATLAB变量的特点:MATLAB不需要对变量进行事先声明,也不需要指定变量的类型,系统会根据对变量赋予的值为变量自动指定类型。 (2)MATLAB的变量命名规则: 1:变量名区分大小写。如 pi 和 Pi 是两个不同的变量。在命令窗口中输入如下的命令,查看其结果。 2:变量名长度不超过63个字符,超过的部分将会被忽略。 3:变量名必须以字母开始,其后可以为字母、数字或者 下划线。MATLAB 中的变量名不支持其他符号,因为其 他符号在 MATLAB 中具有特殊的意义。 (3)系统预定义的特殊变量(P29表2-15),2019/7/21,3,MATLAB两大特点,1: 面向复数设计的运算 a=-8;ra=a(1/3) ra = 1.0000 + 1.7321i p=1 0 0 -a;r=roots(p) r = -2.0000 1.0000 + 1.7321i 1.0000 - 1.7321i,2019/7/21,4,2: 面向数组设计的运算 (1) MATLAB把数据都看作数组进行存储和运算。 标量看作(11)的数组数据。 (2) 为了加快计算速度,MATLAB对以数组形式存 储的数据设计了两种基本运算: 1数组运算 2矩阵运算,2019/7/21,5,2.1简单的数学运算,直接输入法 pi*42 ans = 50.2655 没有将结果赋予一个变量 时,MATLAB自动将结果赋 予一个暂时的变量名ans,2. 存储变量法 s=pi*42 s = 50.2655 h=2 h = 2 v=s*h v = 100.5310,2.1.1 最简单的计算器使用方法,2019/7/21,6,2.1.2 MATLAB中的常用数学函数,MATLAB提供的基本初等函数包括三角函数、指数函数、对数函数、复数函数、取整和求余函数、坐标变换函数、数理函数和一些特殊函数。 教材P14-16 MATLAB中使用函数不需要先对函数声明,2019/7/21,7, a=1;b=2;c=sqrt(3); cos_alpha=(a2+b2-c2)/(2*a*b) cos_alpha = 0.5000 alpha=acos(cos_alpha) %反余弦函数acos() alpha = 1.0472 alpha=alpha*180/pi %将弧度值转化为角度 alpha = 60.0000,例2-3:已知三角形三个边长度分别为1、2、 ,求长度为 1和2的两条边的夹角大小。,2019/7/21,8, a=1,b=2,c=sqrt(3) a = 1 b = 2 c = 1.7321,观察一下符号分号“;”,逗号“,”的区别。,2019/7/21,9,2.1.3MATLAB的数学运算符,ab=b/a。,2019/7/21,10,例:矩阵乘法和点乘, a=1 2;3 4; b=2 3;1 1; c=a*b c = 4 5 10 13 d=a.*b d = 2 6 3 4, a=magic(3) a = 8 1 6 3 5 7 4 9 2, c=ones(2,3) c = 1 1 1 1 1 1,魔术矩阵为每行、每列以及 对角之和均相等的矩阵,2019/7/21,11,2.1.4 标点符号的使用,这些符号必须是在英文状态下输入的,2019/7/21,12,1:分号(;) 功能:用于区分数组的行,或者用于一个语句的结尾处,取消运行行显示。 2:百分号(%) 功能:用于在程序文本中添加注释,提高程序的可读性。百分号之后的文本都将视为注释,系统不对其进行编译。 c=ones(2,3); c=ones(2,3) %create a 2*3 matrix of ones. c = 1 1 1 1 1 1,2019/7/21,13,3: 逗号(,) x=1.545,2.1 x = 1.5450 2.1000 round(x) ans = 2 2 x,x x = 1.5450 2.1000 ans = 1.5450 2.1000, x,b=x; x = 1.5450 2.1000,2019/7/21,14,2.2 常用的操作命令和快捷键,掌握一些常用的操作命令和快捷键,可以使得对MATLAB的操作更加便利。,2019/7/21,15,clear命令, x x = 1.5450 2.1000 clear x x ? Undefined function or variable x.,2019/7/21,16,快捷键及其功能,2019/7/21,17,2.3 MATLAB R2010a的数据类型,Matlab常用的数据类型: 数值:numeric 字符:char 逻辑:logical 单元:cell 结构:struct,2019/7/21,18,数值类型,整数: int8,uint8,int16,uint16等 浮点数:单精度(single)和双精度(double) 复数: complex,2019/7/21,19,2.3.1整数,MATLAB 支持8位、16位、32位和64位的有符号和无符号整数数据类型。 上述整数数据类型除了定义范围不同外,具有相同的性质。,2019/7/21,20,整数数据类型的定义,格式: 数据类型标识符(数据值) 例如:定义一个8位有符号的整数x=30 x=int8(30) 测试数据类型函数: class(), x=int8(30) x = 30 class(x) ans = int8 y=80 y = 80 class(y) ans = double,MATLAB默认的 数据类型,2019/7/21,21,整数的运算, y=uint8(15) y = 15 x=uint8(30) x = 30 x+y ans = 45 x*y ans = 255, x/y ans = 2 yx ans = 2 xy ans = 1,左除和右除的关系: yx=x/y,在进行除法时,MATLAB 首先将两个数视为双精度类型进行运算,然后将结果转化为相应的整形数据,当运算结果溢出时,系统 将结果设置为该数据类型 的上限或者下限,2019/7/21,22, x=double(x),y=double(y) x = 30 y = 15 y/x ans = 0.5000 z=y/x z = 0.5000 z=int8(z) z = 1,2019/7/21,23,方式一: datatype(variable) 例: x=int8(4.5) x = 5,方式二: cast(x,type) 例: y=cast(4.5,int8) y = 5 class(y) ans = int8,各种数据类型之间的转换:,2019/7/21,24,不同整数类型之间不能进行运算, x=int8(5) x = 5 y=int16(23) y = 23 z=x+y ? Error using = plus Integers can only be combined with integers of the same class, or scalar doubles.,2019/7/21,25,2.3.2 浮点数,MATLAB 的默认数据类型是双精度类型(double)。 为了节省存储空间,MATLAB 也支持单精度数据类型的数组。 创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。, x=single(3.4) x = 3.4000 y=34 y = 34 x+y ans = 37.4000 class(x+y) ans = single,单精度数据类型的数据进行运算时,返回值为单精度。,2019/7/21,26, realmin(single),realmax(single) ans = 1.1755e-038 ans = 3.4028e+038 eps(single) ans = 1.1921e-007 realmin(double),realmax(double) ans = 2.2251e-308 ans = 1.7977e+308 eps(double) ans = 2.2204e-016,例 2-12 单精度和双精度数据类型的取值范围和精度,2019/7/21,27,2.3.3复数,MATLAB的所有运算是定义在复数域上. MATLAB中虚数单位用i或者j表示 通过两种方法创建复数: 直接输入法 (不建议大家使用) 通过 complex 函数,2019/7/21,28, z=2+3i z = 2.0000 + 3.0000i x=2,y=3,z1=x+y*i x = 2 y = 3 z1 = 2.0000 + 3.0000i,2+3i x+y*i,2019/7/21,29, x=2,y=3,z1=x+yi x = 2 y = 3 ? Undefined function or variable yi. x=int8(2),y=int8(3),z1=x+y*i x = 2 y = 3 ? Error using = mtimes Complex integer arithmetic is not supported.,注意:,是不是复数的实部 和虚部不能为整数呢?,2019/7/21,30,complex 函数的调用方法如下。,c = complex(a,b):返回结果 c 为复数,其实部为 a,虚部为 b。输入参数 a 和 b 可以为标量,或者维数、大小相同的向量、矩阵或者多维数组,输出参数和 a 和 b 的结构相同。 a 和 b 可以有不同的数据类型,当 a 和 b 为各种不同的类型时,返回值分别为: 当 a 和 b 中有一个为单精度时,返回结果为单精度; 如果 a 和 b 其中一个为整数类型,则另外一个必须有相同的整数类型,或者为双精度型,返回结果 c 为相同的整数类型。,2019/7/21,31, x=int8(2),y=int8(3) x = 2 y = 3 z2=complex(x,y) z2 = 2 + 3i,complex()创建单个复数,2019/7/21,32, a=int8(1 2 3 4) a = 1 2 3 4 b=int8(2 3 4 5) b = 2 3 4 5 c=complex(a,b) c = 1 + 2i 2 + 3i 3 + 4i 4 + 5i,complex()创建复数数组,2019/7/21,33,复数直角坐标和极坐标之间转换,real(z): 给出复数z的实部 imag(z):给出复数z的虚步 abs(z):给出z的模 angle(z):以弧度为单位给出复数z的幅角,2019/7/21,34,c = complex(a),只有一个输入参数,返回结果 c 为复数,其实部为 a,虚部为 0。但是此时 c 的数据类型为复数。, x=int8(x) x = 2 c=complex(x) c = 2 isreal(c) ans = 0, d=complex(a) d = 1 2 3 4 isreal(d) ans = 0 e=x+0*i e = 2 isreal(e) ans = 1,isreal(x)判断x是否为实数,2019/7/21,35,2.3.4逻辑变量,1. 逻辑变量的值:逻辑真(1)、逻辑假(0) 2.一些 MATLAB 函数或操作符会返回逻辑真或逻辑假表示条件是否满足。 例如:表达式 (5 * 10) 40 返回逻辑真。 3. 逻辑数组:数组的元素全部是逻辑值。 如下面的表达式返回逻辑数组: 30 40 50 60 70 40 ans = 0 0 1 1 1,2019/7/21,36,创建逻辑数组,1:创建逻辑数组的最简单的方法为直接输入元素的值为 true 或者 false x=true,false,true x = 1 0 1 2:逻辑数组也可以通过逻辑表达式生成 x=1 2 3 42 x = 0 0 1 1 class(x) ans = logical,2019/7/21,37,MATLAB 中返回逻辑值的函数和操作符,2019/7/21,38,逻辑数组的应用,用于条件表达式 如果仅当条件成立时执行某段代码,可以应用逻辑数 组进行判断和控制 str=hello str = hello if isempty(str)&ischar(str) sprintf(input string is “%s“,str) end ans = input string is “hello“,2019/7/21,39,2.用于数组索引 在 MATLAB 中支持通过一个数组对另一个数组进行索 引 a=1:2:10 a = 1 3 5 7 9 b=1 3 5 b = 1 3 5 a(b) ans = 1 5 9,2019/7/21,40,通过逻辑数组对数组进行索引, a=rand(3) a = 0.9649 0.9572 0.1419 0.1576 0.4854 0.4218 0.9706 0.8003 0.9157 b=a0.5 b = 1 1 0 0 0 0 1 1 1, c=a(b) c = 0.9649 0.9706 0.9572 0.8003 0.9157 a(b)=0 a = 0 0 0.1419 0.1576 0.4854 0.4218 0 0 0,0.9649 0.9572 0.1419 0.1576 0.4854 0.4218 0.9706 0.8003 0.9157,2019/7/21,41,3.逻辑数组的判断(通过函数来判断), a=rand(3); b=a0.5; islogical(b) ans = 1 islogical(a) ans = 0,2019/7/21,42, a=true ,false,true a = 1 0 1 b=90 b = 90 a a = 1 0 1 whos a Name Size Bytes Class Attributes a 1x3 3 logical class(a) ans = logical, islogical(a) ans = 1 islogical(b) ans = 0 isa(b,logical) ans = 0 isa(b,double) ans = 1,2019/7/21,43,2.3.5 数据类型操作函数,type包括numeric、integer、float和其它数据类型,2019/7/21,44,2.4 MATLAB R2010a的运算符,2.4.1 关系运算符 MATLAB 的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。MATLAB 的关系运算符包括所有常用的比较运算符,如表所示,2019/7/21,45,2.4.2 逻辑运算符 逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。MATLAB 中的逻辑运算符如表所示。,2019/7/21,46, a=5,b=9; a = 5 c1=(a c2=(ab)|(b/a=fix(b/a) c2 = 1,2019/7/21,47,2.4.3 运算符优先级别 MATLAB 首先执行具有较高优先级的运算,然后执行具有较低优先级的运算;如果两个运算的优先级相同,则按从左到右的顺序执行。 MALTAB 中各运算符的优先级顺序如表所示,表中按照优先级从高到低的顺序排列各运算符。,2019/7/21,48,2.5 MATLAB的一些基础函数,位操作函数 逻辑运算函数 集合函数 时间与日期函数,2019/7/21,49,十进制数与二进制相互转换函数 d=bin2dec(binarystr) str = dec2bin(d), bin2dec(10100) ans = 20 a=dec2bin(28) a = 11100,2019/7/21,50,表2-19MATLAB中的位操作函数,2019/7/21,51, dec2bin(A) ans = 11100 dec2bin(B) ans = 10101 bitand(A,B) ans = 20 bitor(A,B) ans = 29 bitxor(A,B) ans = 9,2019/7/21,52,表2-20MATLAB中的逻辑运算函数,2019/7/21,53,2.6 MATLAB脚本文件,对于多数问题,所需的命令较多,或者需要逻辑运算,进行流程控制,此时采用直接输入命令的方法则会引起不便。针对这些问题,一个合理的解决方法是使用脚本文件(M文件)。 脚本文件不接受输入参数,不返回任何值,而是代码的结合,该方法允许用户将一系列 MATLAB 命令输入到一个简单的脚本文件中,只要在 MATLAB 命令窗口中执行该文件,则会依次执行该文件中的命令。,2019/7/21,54,2.6.1 脚本文件的用法

温馨提示

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

评论

0/150

提交评论