资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章,MATLAB,数据及其运算,2.1 MATLAB,数据的特点,2.2,变量及其操作,2.3 MATLAB,矩阵的表示,2.4 MATLAB,数据的运算,2.5,字符串,2.6,结构数据和单元数据,矩阵是,MATLAB,最基本、最重要的数据对象,,MATLAB,的大部分运算或命令都是在矩阵运算的意义下执行的,而且这种运算定义在复数域上。向量和单个数据都可以作为矩阵的特例来处理。,数值数据:双精度型、单精度数、带符号整数和无符号整数。,字符数据。,结构体,(Structure),和单元,(Cell),数据类型。,稀疏矩阵,(Sparse),。,逻辑型数据。在,MATLAB,中,以数值,1(,非零,),表示“真”,以数值,0,表示“假”。,2.1 MATLAB,数据的特点,2.2,变量及其操作,2.2.1,变量与赋值,1,变量命名,在,MATLAB 6.5,中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多,63,个字符。在,MATLAB,中,变量名区分字母的大小写。,2.2.1,变量与赋值,2,赋值语句,(1),变量,=,表达式,(2),表达式,其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。,2.2,变量及其操作,例,2.1,计算表达式的值,并显示计算结果。在,MATLAB,命令窗口输入命令:,x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i),其中,pi,和,i,都是,MATLAB,预先定义的变量,分别代表圆周率,和虚数单位。,2.2,变量及其操作,2.2.1,变量与赋值,3.,预定义变量,在,MATLAB,工作空间中,还驻留几个由系统本身定义的变量。例如,用,pi,表示圆周率,的近似值,用,i,,,j,表示虚数单位。,预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。,2.2,变量及其操作,2.2.2,变量的管理,1,内存变量的显示与删除,who,和,whos,这两个命令用于显示在,MATLAB,工作空间中已经驻留的变量名清单。,who,命令只显示出驻留变量的名称,,whos,在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。,2.2,变量及其操作,clear,命令用于删除,MATLAB,工作空间中的变量。,MATLAB,工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击,Delete,按钮,就能删除这些变量。当选中某些变量后,再单击,Open Selection,按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。,2.2,变量及其操作,2.2.2,变量的管理,2,内存变量文件,利用,MAT,文件可以把当前,MATLAB,工作空间中的一些有用变量长久地保留下来,扩展名是,.mat,。,MAT,文件的生成和装入由,save,和,load,命令来完成。常用格式为:,ave,文件名,变量名表,-append-,ascii,load,文件名,变量名表,-,ascii,2.2,变量及其操作,2.2.2,变量的管理,其中,文件名可以带路径,但不需带扩展名,.mat,,命令隐含一定对,.mat,文件进行操作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。,-,ascii,选项使文件以,ASCII,格式处理,省略该选项时文件将以二进制格式处理。,save,命令中的,-append,选项控制将变量追加到,MAT,文件中。,2.2,变量及其操作,2.2.2,变量的管理,MATLAB,用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。,在一般情况下,,MATLAB,内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用,format,命令设置或改变数据输出格式。,format,命令的格式为:,format,格式符其中格式符决定数据的输出格式,2.2,变量及其操作,2.2.3,数据的输出格式,2.3 MATLAB,矩阵的表示,2.3.1,矩阵的建立,1,直接输入法,最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。,2.3.1,矩阵的建立,2,利用,M,文件建立矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个,M,文件。下面通过一个简单例子来说明如何利用,M,文件创建矩阵。,2.3 MATLAB,矩阵的表示,例,2.2,利用,M,文件建立,MYMAT,矩阵。,(1),启动有关编辑程序或,MATLAB,文本编辑器,并输入待建矩阵:,(2),把输入的内容以纯文本方式存盘,(,设文件名为,mymatrix.m,),。,(3),在,MATLAB,命令窗口中输入,mymatrix,,即运行该,M,文件,就会自动建立一个名为,MYMAT,的矩阵,可供以后使用。,2.3 MATLAB,矩阵的表示,3,建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。,例如,A=1 2 3;4 5 6;7 8 9;,C=,A,eye(size(A,);,ones(size(A),A,2.3 MATLAB,矩阵的表示,2.3.1,矩阵的建立,2.3.2,冒号表达式,冒号表达式可以产生一个行向量,一般格式是:,e1:e2:e3,其中,e1,为初始值,,e2,为步长,,e3,为终止值。,在,MATLAB,中,还可以用,linspace,函数产生行向量。其调用格式为:,linspace(a,b,n,),其中,a,和,b,是生成向量的第一个和最后一个元素,,n,是元素总数。,显然,,linspace(a,b,n,),与,a:(b-a)/(n-1):b,等价。,2.3 MATLAB,矩阵的表示,2.3.3,矩阵的拆分,1,矩阵元素,通过下标引用矩阵的元素,例如,A(3,2)=200,采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在,MATLAB,中,矩阵元素按列存储,先第一列,再第二列,依次类推。,2.3 MATLAB,矩阵的表示,例如,A=1,2,3;4,5,6;A(3),ans,=2,显然,序号,(Index),与下标,(Subscript),是一一对应的,以,mn,矩阵,A,为例,矩阵元素,A(i,j,),的序号为,(j-1)*,m+i,。其相互转换关系也可利用,sub2ind,和,ind2sub,函数求得。,2.3 MATLAB,矩阵的表示,2,矩阵拆分,(1),利用冒号表达式获得子矩阵,A(:,j,),表示取,A,矩阵的第,j,列全部元素;,A(i,:),表示,A,矩阵第,i,行的全部元素;,A(i,j,),表示取,A,矩阵第,i,行、第,j,列的元素。,A(i:i+m,:),表示取,A,矩阵第,i,i+m,行的全部元素;,A(:,k:k+m,),表示取,A,矩阵第,k,k+m,列的全部元素,,A(i:i+m,k:k+m,),表示取,A,矩阵第,i,i+m,行内,并在第,k,k+m,列中的所有元素。,2.3 MATLAB,矩阵的表示,2.3.3,矩阵的拆分,(2),利用空矩阵删除矩阵的元素,在,MATLAB,中,定义,为空矩阵。给变量,X,赋空矩阵的语句为,X=,。注意,,X=,与,clear X,不同,,clear,是将,X,从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为,0,。,2.3 MATLAB,矩阵的表示,A(:),将矩阵,A,每一列元素堆叠起来,成为一个列向量,而这也是,MATLAB,变量的内部储存方式。,此外,还可利用一般向量和,end,运算符来表示矩阵下标,从而获得子矩阵。,end,表示某一维的末尾元素下标。,2.4.1,算术运算,1,基本算术运算,MATLAB,的基本算术运算有:,(,加,),、,(,减,),、*,(,乘,),、,/(,右除,),、,(,左除,),、,(,乘方,),。,注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。,2.4 MATLAB,数据的运算,(1),矩阵加减运算 假定有两个矩阵,A,和,B,,则可以由,A+B,和,A-B,实现矩阵的加减运算。运算规则是:若,A,和,B,矩阵的维数相同,则可以执行矩阵的加减运算,,A,和,B,矩阵的相应元素相加减。如果,A,与,B,的维数不相同,则,MATLAB,将给出错误信息,提示用户两个矩阵的维数不匹配。,2.4 MATLAB,数据的运算,2.4.1,算术运算,1,基本算术运算,(2),矩阵乘法 假定有两个矩阵,A,和,B,,若,A,为,mn,矩阵,,B,为,np,矩阵,则,C=A*B,为,mp,矩阵。,2.4 MATLAB,数据的运算,2.4.1,算术运算,1,基本算术运算,(3),矩阵除法在,MATLAB,中,有两种矩阵除法运算:,和,/,,分别表示左除和右除。如果,A,矩阵是非奇异方阵,则,AB,和,B/A,运算可以实现。,AB,等效于,A,的逆左乘,B,矩阵,也就是,inv(A,)*B,,而,B/A,等效于,A,矩阵的逆右乘,B,矩阵,也就是,B*,inv(A,),。,对于含有标量的运算,两种除法运算的结果相同,如,3/4,和,43,有相同的值,都等于,0.75,。又如,设,a=10.5,25,,则,a/5=5a=2.1000 5.0000,。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般,ABB/A,。,2.4 MATLAB,数据的运算,2.4.1,算术运算,1,基本算术运算,(4),矩阵的乘方,一个矩阵的乘方运算可以表示成,Ax,,要求,A,为方阵,,x,为标量。,2,点运算,在,MATLAB,中,有一种特殊的运算,叫点运算。点运算符有,.*,、,./,、,.,和,.,。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,2.4 MATLAB,数据的运算,2.4.1,算术运算,1,基本算术运算,3.MATLAB,常用数学函数,函数使用说明:,(1),三角函数以弧度为单位计算。,(2)abs,函数可以求实数的绝对值、复数的模、字符串的,ASCII,码值。,(3),用于取整的函数有,fix,、,floor,、,ceil,、,round,,要注意它们的区别。,(4),rem,与,mod,函数的区别。,rem(x,y,),和,mod(x,y,),要求,x,y,必须为相同大小的实矩阵或为标量。,2.4 MATLAB,数据的运算,2.4.1,算术运算,2.4.2,关系运算,MATLAB,提供了,6,种关系运算符:,(,小于,),、,(,大于,),、,=(,大于或等于,),、,=(,等于,),、,=(,不等于,),。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。,2.4 MATLAB,数据的运算,关系运算符的运算法则为:,(1),当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为,1,,否则为,0,。,(2),当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由,0,或,1,组成。,2.4 MATLAB,数据的运算,2.4.2,关系运算,(3),当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由,0,或,1,组成。,2.4 MATLAB,数据的运算,2.4.2,关系运算,例,2.3,建立,5,阶方阵,A,,判断,A,的元素是否能被,3,整除。,A=24,35,13,22,63;
展开阅读全文