MATLAB 第二章

上传人:痛*** 文档编号:137670798 上传时间:2022-08-18 格式:DOC 页数:10 大小:152KB
收藏 版权申诉 举报 下载
MATLAB 第二章_第1页
第1页 / 共10页
MATLAB 第二章_第2页
第2页 / 共10页
MATLAB 第二章_第3页
第3页 / 共10页
资源描述:

《MATLAB 第二章》由会员分享,可在线阅读,更多相关《MATLAB 第二章(10页珍藏版)》请在装配图网上搜索。

1、(3)Insert菜单选项功能X LabelTitleLegendColorbar命令窗口时进行MATLAB操作最主要的窗口,如下图所示。其中“”为运算提示符,表示MATLAB处于准备状态。在该窗口中,用户可以运行函数、执行MATLAB的基本操作命令,以及对MATLAB系统的参数进行设置。MATLAB具有良好的交互性,当在提示符后输入一段正确的运算式时,只需要按回车键,该窗口就会直接显示运算结果,在MATLAB命令窗口中运行的所有命令都共享一个相同的工作空间,所以它们共享所有的变量。当用户使用命令窗口进行工作时,用户可以根据需要,对数值计算结果的显示格式、字体风格、大小等进行设置。选择“fil

2、e”菜单中的“Preference”命令,弹出下图所示的参数设置对话框,在左侧列表栏中选择“Command Window”即可进入命令窗口的设置。1.4.1命令窗( Command Window)指令在MATLAB的默认设置中,关键字显示的字体为蓝色字体,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为褐红色,注释显示的字体为绿色,错误信息显示的字体为红色。 2.2 数值、变量和表达式2.2 数值、变量和表达式1. MATLAB基本数值类型MATLAB的基本数值类型变量或者对象主要用来描述基本的数值对象,主要包括各种有无符号的整数型数据、双精度型(double)和单精度型(singl

3、e)的数据。本小节主要对这些数值数据类型进行介绍。(1) 整数MATLAB中主要包括8位、16位、32位和64位的有符号和无符号类型的整数数据类型,在定义整形数据变量时,需要指定变量的数据类型。表2-1给出了这8种数据类型的取值范围和类型转化函数。需要说明的是,表2-1中定义的整数数据类型不同,但是这些类型的数据具有相同的性质。每种类型数据都可以通过函数intmax和intmin来查询此种数据类型的上下限。例2-1 整型数据的定义。x1=int16(20)x1= 20intmin(int16)ans= -32768intmax(int16) ans= 32767class(x1)ans=int

4、16y1=35y1= 35class(y1)ans=double以上代码中,显示出MATLAB中的整型数据定义方法及其默认的数据类型,同时通过intmin和intmax来获取整型数据的上下限。此外,class函数可以获取所定义变量的数据类型。MATLAB的默认数据存储类型为double类型,利用类型转化函数可将数据存储为整数类型。如果数据中含有小数部分,MATLAB将按照四舍五入的方法将其转化为整数。例2-2 整数类型的转化。在命令窗输入:x=4.5001;int16(x)运行结果:ans= 5用户也可以根据需要对数据的小数部分进行舍入。例2-3 整数类型的范围。在命令窗输入:intmax(i

5、nt8),x=int8(333)运行结果: ans= 127 x= 127整数的取值范围可以通过函数intmax和intmin来查看,如果待转化的数据超出了取值范围,则将该数据变为取值范围内的最值。(2) 浮点数MATLAB的浮点数分为单精度浮点数类型(single)和双精度浮点数类型(double)。double为默认数据类型,需要64位的存储空间。单精度和双精度类型的取值范围可以选择用函数realmin、realmax来得到。单精度类型浮点数的精度可以通过函数eps来得到。例2-4 单、双精度浮点数的数值范围和精度。realmin(single)ans= 1.1755e-038realma

6、x(single)ans= 3.4028e+038realmin(double)ans= 2.2251e-038epsans= 2.2204e-016此外,需要注意对于单精度的数据变量,创建方法和整型数据的创建方法相同,而对于单精度数据和双精度数据之间的混合运算,处理结果为单精度的数据结果。例2-5 浮点数相对精度。在命令窗输入:format longeps(7),eps(3)运行结果: ans= 8.881784197001252e-016 ans= 4.440892098500626e-016在命令窗输入: eps(single(7),eps(single(3)运行结果: ans= 4.7

7、683716e-007 ans= 2.3841858e-007对于浮点数的运算操作要特别小心,以免带来不必要的麻烦。MATLAB中提供了大量的数据操作函数,可以进行不同数据类型变量的创建或数据之间的转化处理。表2-4所示为其中的一部分数据操作函数,主要实现整型变量或数据与双精度类型变量或数据之间的转换操作。表2-4 MATLAB中常见的数值数据函数函数名称描 述double创建或转化为精双度类型的数据single创建或转化为单精度类型的数据int8,int16, int32,int64创建或转化为有符号的整型数据uint8, uint16, uint32, uint64创建或转化为无符号的整型

8、数据isnumeric数据类型判断函数,如果为整型数据或浮点数,那么函数返回trueisinteger整型数据判断函数,如果为整型数据,则返回trueisfloat浮点数类型判断函数,如果为单精度或双精度数据,则返回trueisa(x,type)判断x是否为指定的type类型数据,若是则返回truecast(x,type)将x的数据类型转化为type类型数据intmax(type)返回整形数据的最大数值intmin(type)返回整形数据的最小数值realmax(type)返回浮点数的最大数值realmin(type)返回浮点数的最小数值eps(type)返回type类型数据的eps数值(浮点

9、数值,即精度)eps(x)x的eps数值表中,type为numeric、integer、float及其他类型的数据类型。(3) 复数MATLAB的复数分为实部和虚部两个部分,虚部可以用字母i或j来表示。直接将复数的数学表达式作为命令输入,就可以创建一个复数。另外,运用命令complex(a,b)也可以创建复数。complex函数的第一个参量是实部数组,第二个参量是虚部数组。 例2-6 创建复数。在命令窗输入:format short1-2i 运行结果: ans= 1.0000-2.0000i或在命令窗输入: complex(1,-2)运行结果: ans= 1.0000-2.0000i利用函数r

10、eal(z)和imag(z)可以获取复数的实部和虚部。例2-7 获取复数的实部和虚部。在命令窗输入:A=1 2;3 4;B=5 6;7 8;Z=complex(A,B) Zr=real(Z) Zi=imag(Z)运行结果: Z= 1.0000+5.0000i 2.0000+6.0000i 3.0000+7.0000i 4.0000+8.0000i Zr= 1 2 3 4 Zi= 5 6 7 8(4) 无穷与非数MATLAB中分别用inf和-inf表示无穷和负无穷,用NAN表示非数。例2-8 无穷。在命令窗输入: 1/0运行结果:ans= Inf例2-9 非数。在命令窗输入:0/0运行结果: a

11、ns= NaN(5) 数据显示形式MATLAB默认的数据显示形式是5位长度,但是用户可以通过参数选择对话框或者format函数设置数据的显示形式。如果需要采用其他的输出格式进行数据显示,那么用户可以通过设置输出格式来进行标示。可以设置的数据显示格式命令如表2-5所示。表2-5输出数据显示格式命令格式命令含义format short小数点后包括4位有效数字,最多不超过7位有效数字;如果数值大于1000,那么按照科学计数法来表示format long用15位数字来表示format short e5位科学计数法表示format long e15位科学计数法表示format short g从forma

12、t short和format short e中自动选择最佳的数值表示方法format long g从format long和format long e中自动选择最佳的数值表示方法format rat采用近似有理数来表示format hex十六进制标示format +用+、-和空格来分别标示正数、负数和零,复数中的虚部不表示format bank金融表示方法,元、角、分等format compact显示变量之间没有空格format loose显示变量之间有空格需要注意的是,以上所有的设置格式在当前的工作空间内有效,而在该执行过程后,这些格式都不再起作用,即当关闭工作空间后,这些设置结果都不再起作

13、用。对于format的具体意义,读者还可以通过在命令窗口中输入help format来查询。例2-10 数据显示形式。在命令窗输入:x=2.2 1e-13运行结果: x=2.2000 0.0000继续在命令窗输入: format long x x= 2.200000000000000 0.000000000001002. 变量变量是任何程序设计语言的基本元素之一。MATLAB 并不要求对所使用的变量进行事先声明,也不需要指定变量类型,MATLAB 会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。在赋值过程中,如果变量已经存在,MATLAB 会用新值代替旧值,并以新的变量类型代替旧

14、的变量类型。(1) 变量的种类 局部变量(Local Variables)A = 0.01 全局变量(Global Variables)global ALPHA ALPHA = 0.01(2) 变量的命名规则 变量名、函数名是对字母大小写敏感的,即区分大小写,如变量myvalue、MYValue、myVALUE等是 不同的变量名。sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。 变量名的第一个字符必须是英文字母,最多可以包含65个字符(英文、数字和下连线)(可以用name_length_max函数查看当前版本的MATLAB允许的变量名最多包含多少个字符,老版本只能31个)。 变

15、量名中不得包含空格,标点符号。 M文件名也必须满足这样的规则,才能在MATLAB中运行。在MATLAB中,数值都习惯采用十进制来表示,和一般的数学表示方法一致。如5,-10,0.001,3.1415926,3.0e+010等。此外,在MATLAB工作空间中,还驻留几个由系统本身定义的变量。这些变量在2011aMATLAB程序启动后,就已经自动定义,具有特定的含义和意义,如下表2-6。表2-6 MATLAB预定义的变量预定义变量含 义ansMATLAB中默认的计算结果变量名,answer的缩写形式pi 圆周率 peps 浮点运算相对精度Inf或inf无穷大数的表示,如1/0nan或NaN不定值,

16、不是一个数,通常由0/0、/等不能确定数值的时候产生i 或 j复数中的虚数单位,即i=j=realmin可用的最小正浮点数realmax可用的最大正浮点数nargin在调用函数时,函数变量的输入个数nargout函数调用时,由函数输出的变量个数说明 在使用时,应尽量避免对这些变量重新赋值。 MATLAB 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量 “ans”。在定义变量时还需要注意,如果用户对预定义的特殊变量赋值,那么该特殊变量的数值将会临时被覆盖。当用clear命令清楚变量数值或重新启动MATLAB之后,预定义变量的数值可以恢

17、复到初始值而不会发生变化;此外,在进行运算过程中,被0除不会导致程序的终止,系统会根据情况给出警告信息,并相应地用Inf或NaN来表示这些计算结果。3. 运算符和表达式(1)数学运算符在MATLAB中提供了各种数学运算符号,这些运算符号是进行计算的基础。数学运算符是定义在矩阵上的,一个数在MATLAB中被看成11矩阵。主要包括以下一些基本的运算符号,如表2-7所示。表2-7 MATLAB表达式的基本运算符符号功能符号功能+加法-减法*矩阵乘法.*乘,点乘,即数组乘法/右除./数组右除左除.数组左除乘方.数组乘方矩阵共轭转置.矩阵转置说明 MATLAB所有的运算定义在复数域上。对于方根问题,运算

18、只返回i处于第一象限的解。 MATLAB用左斜杠会右斜杠分别代表“左除”或“右除”运算。对标量而言,这二者的作用没有区别;但对矩阵来说,“左除”和“右除”将产生不同的结果。例2-11 矩阵的乘除和乘方。%定义矩阵A和矩阵BA=round(rand(3)*10)A= 9 4 4 7 9 9 2 9 1 B=magic(3) B= 8 1 6 3 5 7 4 9 2 %矩阵的叉乘和点乘 C1=A*B C1= 100 65 90 119 133 123 47 56 77 C2=A.*B C2= 72 4 24 21 45 63 8 81 2%矩阵的左除和右除D1=A./BD1= 1.1250 4.0

19、000 0.6667 2.3333 1.8000 1.2857 0.5000 1.0000 0.5000D2=A.BD2= 0.8889 0.2500 1.5000 0.4268 0.5556 0.7778 2.0000 1.0000 2.0000%矩阵的乘方E1=A.2E1= 81 16 16 49 81 81 4 81 1E2=A2E2= 117 108 76 144 190 118 83 98 90 从例2-11可以看出,无论哪种运算方法(乘法、除法以及乘方),带“.”的运算方式表示对矩阵的元素进行运算。对于矩阵而言,矩阵的右除是一般意义的除法,而左除则具有对称意义,即A./B=B.A。

20、 (2)MATLAB表达式的书写规则MATLAB中的表达式,和一般的数学表达式的书写原则相同,但对于数组运算而言,则需要注意数组元素的运算和数组的计算是不同的。书写规则如下: 表达式由变量名、运算符和函数名组成; 表达式将按与常规相同的优先级自左至右执行运算; 优先级的规定是:指数运算级别最高,乘除运算次之,加减运算级别最低; 括号可以改变运算的次序; 书写表达式时:赋值符“=”和运算符两侧允许有空格,以增加可读性。2.3 数组的定义数组是由若干个数排列成矩形的组合。数组的内涵经过扩充,范围很广。以维数来分,有一维数组、二维数组和多维数组。按数组中元素来分,有数值数组、字符串数组、结构数组和单

21、元数组等。2.3.1 数组的构造及生成规则1. 一维数组的创建概括而言,创建一维数组时,可以通过以下几种方法来进行。(1)直接输入法:此时,可以直接通过空格、逗号和分号来分隔数组元素,在数组中输入任意的元素,生成一维数组。(2)布长生成方法:x=a:inc:b,在使用这种方法创建一维数组时,a和b为一维向量数组的起始数值和终止数值,inc为数组的间隔步长;如果a和b为整数时,省略inc可以生成间隔为1的数列。根据a和b的大小不同,inc可以采用正数,也可以采用负数来生成一维向量数组。(3)等间距线形生成方法:x=linspace(a,b,n),这种方法采用函数在a和b之间的区间内得到n个线形采

22、样数据点。(4)等间距对数生成方法:x=logspace(a,b,n),采用这种方法时,在设定采样点总个数n的情况下,采用常用对数计算得到n个采样点数据值。例2-12 一维数组的创建。 A1=0 pi 0.5*pi 0.7 1.5 % 直接输入数据生成数组 A1= 0 3.1416 1.5708 0.7000 1.5000 A2=0:0.5:3 % 步长生成方法 A2= 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 A3=linspace(1,6,7) % 等间距线形生成方法 A3= 1.0000 1.8333 2.6667 3.5000 4.3333

23、 5.1667 6.0000 A4=logspace(1,6,7) % 等间距对数生成方法 A4= 1.0e+006* 0.0000 0.0001 0.0005 0.0032 0.0215 0.1468 1.0000当创建数组后,对单个元素的访问,可以直接通过选择元素的索引来加以访问;如果访问数组内的一块数据,则可以通过冒号方式来进行访问;如果访问其中的部分数值,则可以通过构造访问序列或通过构造向量列表来加以访问。在访问数组元素的过程中,访问的索引数组必须是正整数,否则,系统将会提示一条警告信息。例2-12 访问数组的内容。x=linspace(1,6,7) %创建一维数组x= 1.0000

24、1.8333 2.6667 3.5000 4.3333 5.1667 6.0000x(5) %索引访问数组元素ans= 4.3333x(1:5) %访问一块数据ans= 1.0000 1.8333 2.6667 3.5000 4.3333x(3:end) %访问一块数据ans= 2.6667 3.5000 4.3333 5.1667 6.0000x(1:2:7) %构造访问数组ans= 1.0000 2.6667 4.3333 6.0000x(1 4 6 3 2 2) %直接构造访问数组ans= 1.0000 3.5000 5.1667 2.6667 1.8333 1.8333x(3.2)一维

25、数组可以是一个行向量,也可以是一列多行的列向量。在定义的过程中,如果元素之间通过“;”分隔元素,那么生成的向量是列向量;而通过空格或都好哦分隔的元素则为行向量。当然列向量和行向量之间可以通过转置操作“”来进行相互之间的转化过程。但需要注意的是,如果一维数组的元素是复数,那么经过转置操作“”后,得到的是复数的共轭转置结果,而采用点共轭转置操作时得到的转置数组,并不进行共轭操作。例2-13 一维数组的方向。A=1;2;3;4;5 % 生成列向量A= 1 2 3 4 5 B=A % 生成A的转置向量 B= 1 2 3 4 5 C=linspace(1,10,5) % 生成新的列向量 C= 1.000

26、0 3.2500 5.5000 7.7500 10.0000 Z=A+C*i % 生成复数向量 Z= 1.0000+1.0000i 2.0000+3.2500i 3.0000+5.5000i 4.0000+7.7500i 5.0000+10.0000i Z1=Z % 复数向量共轭转置 Z1= Columns 1 through 4 1.0000-1.0000i 2.0000-3.2500i 3.0000-5.5000i 4.0000-7.7500i Columns 5 5.0000-10.0000i Z2=Z. % 点共轭转置 Z2= Columns 1 through 4 1.0000+1.

27、0000i 2.0000+-3.2500i 3.0000+5.5000i 4.0000+7.7500i Columns 5 5.0000+10.0000i2. 多维数组的创建对于二维数组和三维数组而言,创建方法和一维数组的创建方法不同。二维数组可以通过以下3种方法来创建。(1)直接输入二维数组的元素来创建,此时,二维数组的行和列可以通过一维数组的方式来进行创建,不同行之间的数据可以通过分号进行分隔,同一行中的元素可以通过逗号或空格来进行分隔。(2)通过MATLAB的Array Editor来输入二维数组。创建方法为,点击New Variable创建图标,此时系统在工作空间的变量列表中出现新的矩

28、阵变量,用户可以改变该变量的名称。同时,在MATLAB的工作空间出现矩阵编辑器表格,可以直接输入矩阵的数据。(3)对于大规模的数据,可以通过数据表格方式来输入,此时可以单击选择工作空间的Import Data图标,选中已经编写好的矩阵数据文件后,导入到工作空间中。(4)可以通过MATLAB所提供的其他函数来生成二维数组。例2-14 创建多维数组。在命令窗输入:A=5 7 8;0 1 9;4 3 6;A(;,;,2)=1 0 4;3 5 6;9 8 7运行结果: A(;,;,1)= 5 7 8 0 1 9 4 3 6 A(;,;,2)= 1 0 4 3 5 6 9 8 7与矩阵扩展类似,多维数组

29、也可以直接进行扩展。多维数组(n维数组),如在三维数组中存在行、列和页这样三维,即三维数组中的第三维称为页。在每一页中,存在行和列。在MATLAB中,可以创建更高维的n维数组。但实际上主要用到的还是三维数组。三维数组的创建方法有以下几种。(1)直接创建方法。在生成过程中,可以选择使用MATLAB提供的一些内置函数来创建三维数组,如zeros、ones、rand、randn等。(2)通过直接索引的方法进行创建。(3)使用MATLAB的内置函数reshape和repmat将二维数组转换为三维数组。(4)使用cat函数将低维数组转化为高维数组。例2-15 利用函数创建多维数组。在命令窗输入:B=ra

30、ndn(4,3,2)运行结果: B(;,;,1)= -0.6918 -1.4410 0.8156 0.8580 0.5711 0.7119 1.2540 -0.3999 1.2902 -1.5937 0.6900 0.6686 B(;,;,2)= 1.1908 -1.6041 0.8051 -1.2025 0.2573 0.5287 -0.0198 -1.0565 0.2193 -0.1567 1.4151 -0.9219利用串函数也可以实现多维数组的创建。例2-16 利用串函数创建多维数组。在命令窗输入: C=cat(3,2 8;1 5,1 3;4 9)运行结果: C(;,;,1)=2 81 9 C(;,;,2)=1 34 92.3.2特殊数组在MATLAB中,字符串可以用字符数组来表示,而字符数组则与ASCII码相对应。10

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!