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

下载本文档

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

文档简介

第2章基本使用方法教学内容简单的数学运算常用的操作命令和快捷键MATLABR2010a的数据类型MATLABR2010a的运算符MATLAB的一些基础函数MATLAB脚本文件1/14/20231MATLAB两大特点1:面向复数设计的运算>>a=-8;ra=a^(1/3)ra=1.0000+1.7321i>>p=[100-a];r=roots(p)r=-2.00001.0000+1.7321i1.0000-1.7321i1/14/202322:面向数组设计的运算1/14/202332.1简单的数学运算直接输入法>>pi*4^2ans=50.2655

没有将结果赋予一个变量时,MATLAB自动将结果赋予一个暂时的变量名ans2.存储变量法>>s=pi*4^2s=50.2655>>h=2h=2>>v=s*hv=100.53102.1.1最简单的计算器使用方法1/14/202342.1.2MATLAB中的常用数学函数MATLAB提供的基本初等函数包括三角函数、指数函数、对数函数、复数函数、取整和求余函数、坐标变换函数、数理函数和一些特殊函数。教材P14-16

MATLAB中使用函数不需要先对函数声明

1/14/20235>>a=1;b=2;c=sqrt(3);>>cos_alpha=(a^2+b^2-c^2)/(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的两条边的夹角大小。1/14/20236>>a=1,b=2,c=sqrt(3)a=1b=2c=1.7321观察一下符号分号“;”,逗号“,”的区别。1/14/202372.1.3MATLAB的数学运算符a\b=b/a。1/14/20238例:矩阵乘法和点乘>>a=[12;34];>>b=[23;11];>>c=a*bc=451013>>d=a.*bd=2634>>a=magic(3)a=816357492>>c=ones(2,3)c=111111魔术矩阵为每行、每列以及对角之和均相等的矩阵1/14/202392.1.4标点符号的使用1/14/2023101:分号(;)功能:用于区分数组的行,或者用于一个语句的结尾处,取消运行行显示。2:百分号(%)功能:用于在程序文本中添加注释,提高程序的可读性。百分号之后的文本都将视为注释,系统不对其进行编译。>>c=ones(2,3);>>c=ones(2,3)%createa2*3matrixofones.c=1111111/14/2023113:逗号(,)>>x=[1.545,2.1]x=1.54502.1000>>round(x)ans=22>>x,x'x=1.54502.1000ans=1.54502.1000>>x,b=x';x=1.54502.10001/14/2023122.2常用的操作命令和快捷键掌握一些常用的操作命令和快捷键,可以使得对MATLAB的操作更加便利。1/14/202313clear命令>>xx=1.54502.1000>>clearx>>x???Undefinedfunctionorvariable'x'.1/14/202314快捷键及其功能1/14/2023152.3MATLABR2010a的数据类型Matlab常用的数据类型:数值:numeric字符:char逻辑:logical单元:cell结构:struct1/14/202316数值类型整数:int8,uint8,int16,uint16等浮点数:单精度(single)和双精度(double)复数:complex1/14/2023172.3.1整数MATLAB支持8位、16位、32位和64位的有符号和无符号整数数据类型。上述整数数据类型除了定义范围不同外,具有相同的性质。1/14/202318整数数据类型的定义格式:数据类型标识符(数据值)例如:定义一个8位有符号的整数x=30测试数据类型函数:class()>>x=int8(30)x=30>>class(x)ans=int8>>y=80y=80>>class(y)ans=double>>MATLAB默认的数据类型1/14/202319整数的运算>>y=uint8(15)y=15>>x=uint8(30)x=30>>x+yans=45>>x*yans=255>>x/yans=2>>y\xans=2>>x\yans=1>>当运算结果溢出时,系统将结果设置为该数据类型的上限或者下限左除和右除的关系:y\x=x/y在进行除法时,MATLAB首先将两个数视为双精度类型进行运算,然后将结果转化为相应的整形数据1/14/202320>>x=double(x),y=double(y)x=30y=15>>y/xans=0.5000>>z=y/xz=0.5000>>z=int8(z)z=1各种数据类型之间的转换:方式一:datatype(variable)例:>>x=int8(4.5)x=5方式二:cast(x,’type’)例:>>y=cast(4.5,'int8')y=5>>class(y)ans=int81/14/202321不同整数类型之间不能进行运算>>x=int8(5)x=5>>y=int16(23)y=23>>z=x+y???Errorusing==>plusIntegerscanonlybecombinedwithintegersofthesameclass,orscalardoubles.1/14/2023222.3.2浮点数MATLAB的默认数据类型是双精度类型(double)。为了节省存储空间,MATLAB也支持单精度数据类型的数组。创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。>>x=single(3.4)x=3.4000>>y=34y=34>>x+yans=37.4000>>class(x+y)ans=single单精度数据类型的数据进行运算时,返回值为单精度。1/14/202323例2-12单精度和双精度数据类型的取值范围和精度>>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-308ans=1.7977e+308>>eps('double')ans=2.2204e-0161/14/2023242.3.3复数MATLAB的所有运算是定义在复数域上.MATLAB中虚数单位用i或者j表示通过两种方法创建复数:直接输入法

(不建议大家使用)通过complex函数1/14/202325>>z=2+3iz=2.0000+3.0000i>>x=2,y=3,z1=x+y*ix=2y=3z1=2.0000+3.0000i2+3ix+y*i1/14/202326>>x=2,y=3,z1=x+yix=2y=3???Undefinedfunctionorvariable'yi'.>>x=int8(2),y=int8(3),z1=x+y*ix=2y=3???Errorusing==>mtimesComplexintegerarithmeticisnotsupported.注意:?是不是复数的实部和虚部不能为整数呢1/14/202327complex函数的调用方法如下。c=complex(a,b):返回结果c为复数,其实部为a,虚部为b。输入参数a和b可以为标量,或者维数、大小相同的向量、矩阵或者多维数组,输出参数和a和b的结构相同。a和b可以有不同的数据类型,当a和b为各种不同的类型时,返回值分别为:当a和b中有一个为单精度时,返回结果为单精度;如果a和b其中一个为整数类型,则另外一个必须有相同的整数类型,或者为双精度型,返回结果c为相同的整数类型。1/14/202328>>x=int8(2),y=int8(3)x=2y=3>>z2=complex(x,y)z2=2+3icomplex()创建单个复数1/14/202329>>a=int8([1234])a=1234>>b=int8([2345])b=2345>>c=complex(a,b)c=1+2i2+3i3+4i4+5icomplex()创建复数数组1/14/202330复数直角坐标和极坐标之间转换real(z):给出复数z的实部imag(z):给出复数z的虚步abs(z):给出z的模angle(z):以弧度为单位给出复数z的幅角1/14/2023311/14/202332c=complex(a),只有一个输入参数,返回结果c为复数,其实部为a,虚部为0。但是此时c的数据类型为复数。>>x=int8(x)x=2>>c=complex(x)c=2>>isreal(c)ans=0>>d=complex(a)d=1234>>isreal(d)ans=0>>e=x+0*ie=2>>isreal(e)ans=1isreal(x)判断x是否为实数1/14/2023332.3.4逻辑变量1.逻辑变量的值:逻辑真(1)、逻辑假(0)2.一些MATLAB函数或操作符会返回逻辑真或逻辑假表示条件是否满足。例如:表达式(5*10)>40返回逻辑真。3.逻辑数组:数组的元素全部是逻辑值。如下面的表达式返回逻辑数组:>>[3040506070]>40ans=

001111/14/202334创建逻辑数组1:创建逻辑数组的最简单的方法为直接输入元素的值为true或者false>>x=[true,false,true]x=1012:逻辑数组也可以通过逻辑表达式生成>>x=[1234]>2x=0011>>class(x)ans=logical1/14/202335MATLAB中返回逻辑值的函数和操作符1/14/202336逻辑数组的应用用于条件表达式 如果仅当条件成立时执行某段代码,可以应用逻辑数组进行判断和控制>>str='hello'str=hello>>if~isempty(str)&&ischar(str)sprintf('inputstringis"%s"',str)endans=inputstringis"hello"1/14/2023372.用于数组索引 在MATLAB中支持通过一个数组对另一个数组进行索引>>a=1:2:10a=13579>>b=[135]b=135>>a(b)ans=1591/14/202338通过逻辑数组对数组进行索引>>a=rand(3)a=0.96490.95720.14190.15760.48540.42180.97060.80030.9157>>b=a>0.5b=110000111>>c=a(b)c=0.96490.97060.95720.80030.9157>>a(b)=0a=000.14190.15760.48540.42180000.9649

0.95720.14190.15760.48540.4218

0.9706

0.8003

0.91571/14/2023393.逻辑数组的判断MATLAB中提供了一组函数用于判断数组是否为逻辑数组1/14/202340>>a=rand(3);>>b=a>0.5;>>islogical(b)ans=1>>islogical(a)ans=01/14/202341>>a=[true,false,true]a=101>>b=90b=90>>aa=101>>whosaNameSizeBytesClassAttributesa1x33logical>>class(a)ans=logical>>islogical(a)ans=1>>islogical(b)ans=0>>isa(b,'logical')ans=0>>isa(b,'double')ans=11/14/2023422.3.5数据类型操作函数type包括numeric、integer、float和其它数据类型1/14/2023432.3.6变量MATLAB不需要对变量进行事先声明,也不需要指定变量的类型,系统会根据对变量赋予的值为变量自动指定类型。MATLAB的变量命名规则:(1)变量名区分大小写。如pi和Pi是两个不同的变量。在命令窗口中输入如下的命令,查看其结果。(2)变量名长度不超过63个字符,超过的部分将会被忽略。(3)变量名必须以字母开始,其后可以为字母、数字或者下划线。MATLAB中的变量名不支持其他符号,因为其他符号在MATLAB中具有特殊的意义。系统预定义的特殊变量(P29表2-15)1/14/2023442.4MATLABR2010a的运算符2.4.1关系运算符

MATLAB的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。MATLAB的关系运算符包括所有常用的比较运算符,如表所示1/14/2023452.4.2逻辑运算符逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。MATLAB中的逻辑运算符如表所示。1/14/202346>>a=5,b=9;a=5>>c1=(a<b)&&(b/a==fix(b/a))c1=0>>c2=(a<b)||(b/a==fix(b/a))c2=11/14/2023472.4.3运算符优先级别MATLAB首先执行具有较高优先级的运算,然后执行具有较低优先级的运算;如果两个运算的优先级相同,则按从左到右的顺序执行。MALTAB中各运算符的优先级顺序如表所示,表中按照优先级从高到低的顺序排列各运算符。1/14/2023482.5MATLAB的一些基础函数位操作函数逻辑运算函数集合函数时间与日期函数1/14/202349十进制数与二进制相互转换函数d=bin2dec(binarystr)str=dec2bin(d)>>bin2dec('10100')ans=20>>a=dec2bin(28)a=111001/14/202350表2-19MATLAB中的位操作函数1/14/202351>>dec2bin(A)ans=11100>>dec2bin(B)ans=10101>>bitand(A,B)ans=20>>bitor(A,B)ans=29>>bitxor(A,B)ans=91/14/202352表2-20MATLAB中的逻辑运算函数1/14/2023532.6MATLAB脚本文件对于多数问题,所需的命令较多,或者需要逻辑运算,进行流程控制,此时采用直接输入命令的方法则会引起不便。针对这些问题,一个合理的解决方法是使用脚本文件(M文件)。脚本文件不接受输入参数,不返回任何值,而是代码的结合,该方法允许用户将一系列MATLAB

温馨提示

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

评论

0/150

提交评论