资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Matlab Language,*,Matlab,语言及其应用,第,3,讲,matlab,数据的运算与操作,2026/1/30 周五,Matlab,Language,2,1,、数组的算术运算,MATLAB,数组支持线性代数中所有的矩阵运算。,建立特有的数组运算符,如:“,.*”,、“,./”,等。,注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。,MATLAB,数组运算符列表,运算 运算符含义说明,加,+,相应元素相加,减,-,相应元素相减,乘 *矩阵乘法,点乘,.*,相应元素相乘,幂,矩阵幂运算,点幂,.,相应元素进行幂运算,左除或右除,或,/,矩阵左除或右除,左点除或右点除,.,或,./A,的元素被,B,的对应元素除,转秩,2026/1/30 周五,Matlab,Language,3,1,、数组的算术运算,(1),矩阵加减运算 假定有两个矩阵,A,和,B,,则可以由,A+B,和,A-B,实现矩阵的加减运算。,运算规则是:若,A,和,B,矩阵的维数相同,则可以执行矩阵的加减运算,,A,和,B,矩阵的相应元素相加减。如果,A,与,B,的维数不相同,则,MATLAB,将给出错误信息,提示用户两个矩阵的维数不匹配。,一个标量也可以和其他不同维数的矩阵进行矩阵加减运算,2026/1/30 周五,Matlab,Language,4,1,、数组的算术运算 (续),【,例,1-1】,数组加减法,a=zeros(2,3);,a(:)=1:6;,b=a+2.5,b=,3.5000 5.5000 7.5000,4.5000 6.5000 8.5000,c=b-a,c=,2.5000,2.5000,2.5000,2.5000,2.5000,2.5000,2026/1/30 周五,Matlab,Language,5,1,、数组的算术运算,(2),矩阵乘法 假定有两个矩阵,A,和,B,,若,A,为,mn,矩阵,,B,为,np,矩阵,则,C=A*B,为,mp,矩阵。,a=1,2,3;4,5,6,b=1,2;3,0;7,4,c=a*b,c=,28 14,61 32,a=,1 2 3,4 5 6,b=,1 2,3 0,7 4,【,例,1-2】,矩阵,乘法,2026/1/30 周五,Matlab,Language,6,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,。,2026/1/30 周五,Matlab,Language,7,1,、数组的算术运算,(4),点运算 在,MATLAB,中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。,点运算符有,.*,、,./,、,.,和,.,。,两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,2026/1/30 周五,Matlab,Language,8,1,、数组的算术运算 (续),【,例,1-3】,点幂“,.”,举例,a=1:6,a=,1 2 3 4 5 6,b=reshape(a,2,3),b=,1 3 5,2 4 6,a=a.2,a=,1 4 9 16 25 36,b=b.2,b=,1 9 25,4 16 36,2026/1/30 周五,Matlab,Language,9,1,、数组的算术运算 (续),【,例,1-4】,画出,y=1/(x+1),的函数曲线,,x,0,100,。,x=0:100;,y=1./(x+1);,plot(x,y);,legend(y,=1/(x+1);,2026/1/30 周五,Matlab,Language,10,1,、数组的算术运算 (续),【,例,1-5】,生成一个信号:,x=sin(2*pi*t)+sin(4*pi*t),t=0:199./100;,%,采样时间点,%,生成信号,x=sin(2*pi*t)+sin(4*pi*t);,plot(t,x,);,legend(x,=sin(2*pi*t)+sin(4*pi*t);,2026/1/30 周五,Matlab,Language,11,1,、数组的算术运算 (续),2026/1/30 周五,Matlab,Language,12,1,、数组的算术运算,(5)MATLAB,常用数学函数,函数使用说明:,三角函数以弧度为单位计算。,sin,、,asin,abs,函数可以求实数的绝对值、复数的模、字符串的,ASCII,码值。,用于取整的函数有,fix,、,floor,、,ceil,、,round,,要注意它们的区别。,rem,与,mod,函数的区别。,rem(x,y,),和,mod(x,y,),要求,x,y,必须为相同大小的实矩阵或为标量。,sqrt,平方根函数、,log,、,log10,、,log2,、,exp,、,pow2,2026/1/30 周五,Matlab,Language,13,2,、关系运算,Matlab,提供了,6,种关系运算符:,、,=,、,=,、,=,(不等于),关系运算符的运算法则:,1,、当两个标量进行比较时,直接比较两数大小。若关系成立,,结果为,1,,否则为,0,。,2,、当两个维数相等的矩阵进行比较时,其相应位置的元素按,标量关系进行比较,并给出结果,形成一个维数与原来相同,的,0,、,1,矩阵。,3,、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行,比较,结果形成一个与矩阵维数相等的,0,、,1,矩阵。,2026/1/30 周五,Matlab,Language,14,2,、关系运算 (续),【,例,】,建立,5,阶方阵,A,,判断其元素能否被,3,整除。,A=24,35,13,22,63,;,23,39,47,80,80,;,.,90,41,80,29,10,;,45,57,85,62,21,;,37,19,31,88,76,A=,24 35 13 22 63,23 39 47 80 80,90 41 80 29 10,57 85 62 21,19 31 88 76,P=rem(A,3)=0,%,被,3,除,求余,P=,1 0 0 0 1,0 1 0 0 0,1 0 0 0 0,1 1 0 0 1,0 0 0 0 0,2026/1/30 周五,Matlab,Language,15,【,例,】,在,0,,,3,区间,求 的值。要求,消去负半波,即,(,2,),区间内的函数值置零。,x=0:pi/100:3*pi;,y=,sin(x,);,y1=(,y=0,).*y;,%,消去负半波,2026/1/30 周五,Matlab,Language,16,3,、逻辑运算,Matlab,提供了,3,种逻辑运算符:,&,(与)、,|,(或)、,(非),逻辑运算符的运算法则:,1,、在逻辑运算中,确认非零元素为真(,1,),零元素为假(,0,)。,2,、当两个维数相等的矩阵进行逻辑运算时,其相应位置的元素按,标量关系进行逻辑运算,并给出结果,形成一个维数与原来相,同的,0,、,1,矩阵;,3,、当一个标量与一个矩阵逻辑运算时,该标量与矩阵的各元素进,行逻辑运算,结果形成一个与矩阵维数相等的,0,、,1,矩阵;,4,、算术运算优先级最高,逻辑运算优先级最低。,5,、逻辑非是单目运算,服从矩阵运算规则。,与对应的,And(),Or(),Not(),功能一致,2026/1/30 周五,Matlab,Language,17,【,例,】,建立矩阵,A,,找出在,10,,,20,区间的元素的位置。,A=4,15,-45,10,6,;,56,0,17,-45,0;,find(A,=10&Ax=-43,72,9,16,23,47;,y=,max(x,),%,求向量,x,中的最大值,y=,72,y,l,=,max(x,),%,求向量,x,中的最大值及其该元素的位置,y=,72,l=,2,2026/1/30 周五,Matlab,Language,28,6.,数据分析与统计,2.,求矩阵的最大值和最小值,求矩阵,A,的最大值的函数有,3,种调用格式,分别是:,(1),max(A,),:,返回一个行向量,向量的第,i,个元素是矩阵,A,的第,i,列上的最大值;,(2)Y,U=,max(A,),:,返回行向量,Y,和,U,,,Y,向量记录,A,的每列的最大值,,U,向量记录每列最大值的行号;,(3)max(A,dim),:,dim,取,1,或,2,。,dim,取,1,时,该函数和,max(A,),完全相同;,dim,取,2,时,该函数返回一个列向量,其第,i,个元素是,A,矩阵的第,i,行上的最大值。,求最小值的函数是,min,,其用法和,max,完全相同。,2026/1/30 周五,Matlab,Language,29,【,例,】,求矩阵的最大值,x=-43,72,9;16,23,47;,y=,max(x,),%,求矩阵,x,中每列的最大值,y=,16 72 47,y,l,=,max(x,),%,求矩阵,x,中每列的最大值及其该元素的位置,y=,16 72 47,l=,2 1 2,max(x,1),max(x,2),%,求矩阵中每行的最大值,2026/1/30 周五,Matlab,Language,30,6.,数据分析与统计,求和与求积,sum(X,),:,返回向量,X,各元素的和。,prod(X,),:,返回向量,X,各元素的乘积。,sum(A,),:,返回一个行向量,其第,i,个元素是,A,的第,i,列的元素和。,prod(A,),:,返回一个行向量,其第,i,个元素是,A,的第,i,列的元素乘积。,sum(A,dim,),:,当,dim,为,1,时,该函数等同于,sum(A,),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的各元素之和。,prod(A,dim,),:,当,dim,为,1,时,该函数等同于,prod(A,),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的各元素乘积。,2026/1/30 周五,Matlab,Language,31,6.,数据分析与统计,【,例,】,求向量的和与积,x=1,2,3,4,5,6;,sum(x,),%,求向量,x,中所有元素之,和,ans,=,21,prod(x,),%,求向量,x,中所有元素之,积,ans,=,720,2026/1/30 周五,Matlab,Language,32,6.,数据分析与统计,【,例,】,求矩阵的和与积,x=1,2,3,;,4,5,6,;,7,8,9;,sum(x,),%,求矩阵,x,中各列元素之,和,ans,=,12 15 18,prod(x,),%,求矩阵,x,中各列元素之,积,ans,=,28 80 162,2026/1/30 周五,Matlab,Language,33,6.,数据分析与统计,平均值与中值,求数据序列平均值的函数是,mean,,求数据序列中值的函数是,median,。两个函数的调用格式为:,mean(X,),:返回向量,X,的算术平均值。,median(X,),:返回向量,X,的中值。,mean(A,),:返回一个行向量,其第,i,个元素是,A,的第,i,列的算术平均值。,median(A,),:返回一个行向量,其第,i,个元素是,A,的第,i,列的中值。,mean(A,dim,),:当,dim,为,1,时,该函数等同于,mean(A,),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的算术平均值。,median(A,dim,),:当,dim,为,1,时,该函数等同于,median(A,),;当,dim,为,2,时,返回一个列向量,其第,i,个元素是,A,的第,i,行的中值。,2026/1/30 周五,Matlab,Language,34,6.,数据分析与统计,【,例,】,求向量的平均值与中值,x=1,2,3,4,5,9;,mean(x,),%,求向量,x,中所有元素的算术平均值,ans,=,4,median(x,),%,求向量,x,中所有元素的中值,ans,=,3.5000,2026/1/30 周五,Matlab,Language,35,6.,数据分析与统计,【,例,】,求矩阵的平均值与中值,x=1,2,3,;,4,5,6,;,7,8,9;,mean(x,),%,求矩阵,x,中各列元素之算术平均值,ans,=,4 5 6,median(x,),%,求矩阵,x,中各列元素之中值,ans,=,4,5 6,7,矩阵分析与处理,7.1,矩阵结构调整变换,7.1.1,对角阵与三角阵,1,对角阵只有对角线上有非,0,元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为,1,的对角矩阵称为单位矩阵。,(1),提取矩阵的对角线元素 设,A,为,m,n,矩阵,,diag(A,),函数:用于提取矩阵,A,主对角线元素,产生一个具有,min(m,n,),个元素的列向量。,diag(A,k,),:其功能是提取第,k,条对角线的元素。,(2),构造对角矩阵 设,V,为具有,m,个元素的向量,,diag(V,),将产生一个,m,m,对角矩阵,其主对角线元素即为向量,V,的元素。,diag(V,k,),,其功能是产生一个,n,n(n,=,m+|k,|),对角阵,其第,k,条对角线的元素即为向量,V,的元素。,例,先建立,5,5,矩阵,A,,然后将,A,的第一行元素乘以,1,,第二行乘以,2,,,,第五行乘以,5,。,A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A%,用,D,左乘,A,,对,A,的每行乘以一个指定常数,2,三角阵三角阵又进一步分为,上三角阵,和,下三角阵,,所谓上三角阵,即矩阵的对角线以下的元素全为,0,的一种矩阵,而下三角阵则是对角线以上的元素全为,0,的一种矩阵。,(1),上三角矩阵求矩阵,A,的上三角阵的,MATLAB,函数是,triu(A,),。,triu(A,),函数也有另一种形式,triu(A,k,),,其功能是求矩阵,A,的第,k,条对角线以上的元素。例如,提取矩阵,A,的第,2,条对角线以上的元素,形成新的矩阵,B,。,(2),下三角矩阵在,MATLAB,中,提取矩阵,A,的下三角矩阵的函数是,tril(A,),和,tril(A,k,),,其用法与提取上三角矩阵的函数,triu(A,),和,triu(A,k,),完全相同。,7.1.2,矩阵的转置与旋转,1,矩阵的转置转置运算符是单撇号,(,),。,2,矩阵的旋转利用函数,rot90(A,k),将矩阵,A,旋转,90,的,k,倍,当,k,为,1,时可省略。,3,矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,,,依次类推。,MATLAB,对矩阵,A,实施左右翻转的函数是,fliplr(A,),。,4,矩阵的上下翻转,MATLAB,对矩阵,A,实施上下翻转的函数是,flipud(A,),。,7.2,矩阵求逆与线性方程组求解,7.2.1,矩阵的逆对于一个方阵,A,,如果存在一个与其同阶的方阵,B,,使得:,AB=BA=I(I,为单位矩阵,),则称,B,为,A,的逆矩阵,当然,,A,也是,B,的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在,MATLAB,中,求一个矩阵的逆非常容易。求方阵,A,的逆矩阵可调用函数,inv(A,),。,7.2.2,用矩阵求逆方法求解线性方程组,在线性方程组,Ax=b,两边各左乘,A,-1,,有,A,-1,Ax=A,-1,b,由于,A,-1,A=I,,故得,x=A,-1,b,例,用求逆矩阵的方法解线性方程组。,命令如下:,A=1,2,3;1,4,9;1,8,27;,b=5,-2,6;,x=,inv(A,)*b,也可以运用左除运算符“,”求解线性代数方程组。,7.3,矩阵求值,7.3.1,方阵的行列式把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为所对应的行列式的值。在,MATLAB,中,求方阵,A,所对应的行列式的值的函数是,det(A,),。,7.3.2,矩阵的秩与迹,1,矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。在,MATLAB,中,求矩阵秩的函数是,rank(A,),。,2,矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在,MATLAB,中,求矩阵的迹的函数是,trace(A,),。,7.4,矩阵的特征值与特征向量,在,MATLAB,中,计算矩阵,A,的特征值和特征向量的函数是,eig(A,),,常用的调用格式有,3,种:,(1)E=,eig(A,),:求矩阵,A,的全部特征值,构成向量,E,。,(2)V,D=,eig(A,),:求矩阵,A,的全部特征值,构成对角阵,D,,并求,A,的特征向量构成,V,的列向量。,(3)V,D=,eig(A,nobalance,),:与第,2,种格式类似,但第,2,种格式中先对,A,作相似变换后求矩阵,A,的特征值和特征向量,而格式,3,直接求矩阵,A,的特征值和特征向量。,例,3.9,用求特征值的方法解方程。,3x,5,-7x,4,+5x,2,+2x-18=0p=3,-7,0,5,2,-18;A=,compan(p,);%A,的伴随矩阵,x1=,eig(A,)%,求,A,的特征值,x2=,roots(p,)%,直接求多项式,p,的零点,字符和字符串类型,8,字符串(,string,、,array of characters,),在,Matlab,中,数据类型(,char,)表示一个字符。一个,char,类型的,1,n,数组,称为,字符串,string,。,在,Matlab,中,用,“,单引号对,”,表示字符串。,2026/1/30 周五,Matlab,Language,47,8,字符串(,string,、,array of characters,),关于字符串,MATLAB,处理字符,(,Characters,),与字符串,(,Strings,),的,相关指令,大部分都放在下列目,录,之中:,MATLAB,根目录,toolbox,matlabstrfun,其中的,strfun,就是代表,String Functions,。若要,查询与字符,和,字符串相关,的,指令,,可在,MATLAB,下,输,入:,help,strfun,或是,help strings,2026/1/30 周五,Matlab,Language,48,8.1,字符串,的,概念,多个字符,(,Characters,)可以,构成一个,字符串,(,Strings,),,或称为,字符数组,(character array),。,一,个,字符串,是被,视为一个,行,向量,(,row,v,ector,),。,字符串,中的每一,个,字符,(含,空格,),,以其,ASCII,码,的形式存放,于行,向量中,,,是,该字符串变量,的一,个,元素,(,e,lement,),。,MATLAB,提供了丰富的字符串操作,包括字符串的创建、合并、比较、查找以及与数值之间的转换。,2026/1/30 周五,Matlab,Language,49,8.2,字符串的构造,(1),Matlab,用,单引号,来,界定,一个,字,符,串,。,直接在单引号对内输入字符串内容,得到新字符串,如要输入的字符串中有单引号,,,则由两个连续的单引号来表示。,若要,计算字符串变量,的,长度,(即,组成字符串,的,个数,),可用,length,指令,。,【,例,】,命名字符串变量,str1=I like MATLAB,;,%,建立字串,变量,str1,str2=JavaScript,and Perl!;,%,建立字串,变量,str2,【,例,】,含单引号字符串的输入,sentence=,I,ve,got a date!;,length(sentence,),%,计算,字,字符串,sentence,的,长度,ans,=16,2026/1/30 周五,Matlab,Language,50,8.2,字符串的构造,(2),double,指令,:,查看字符串变量,的,存储,內容(即,ASCII,内码,),char,指令,:,将,ASCII,內,码转换为,字,符,串形式,【,例,】,:,字符串与,ASCII,码的相互转换,sentence=,Ive,got a date!;,sentenceAscii,=,double(sentence,),%,查看,sentence,的,ASCII,码,sentence2=,char(sentenceAscii,),%,将,ASCII,码恢复成,字,符,串形式,sentenceAscii,=,73 39 118 101 32 103 111 116 32 97 32 100,97 116 101 33,sentence2=,Ive got a date!,2026/1/30 周五,Matlab,Language,51,8.3,一,个字符数组变量存储,多,行,字,符,串,第一,种,方法是使用,二维字符数组,(,Two Dimensional Character Arrays,),必须,先,确认每个字符串,(即每,一行,)的,长度一样,,,否则就必须,在短字,符,串,结尾补齐,空,格,【,例,】,多行字符串变量,departments=,ee,;,cs,;econ,注意,上述语句中,空,格字符,的使用,。,departments=,ee,cs,econ,2026/1/30 周五,Matlab,Language,52,8.3,、,一,个变量存储,多,个,字,符,串,(续),用,char,函数创建字符串数组,得到,结果,和,上例的一样,;,departments=,char(ee,cs,econ),%,注意,空格,及,的使用,注意,:,该函数能自动为每个字符串补足空格到最长字符串长度;,2026/1/30 周五,Matlab,Language,53,8.3,、,一,个变量存储,多,个,字,符,串,(续),从二维字符数组访问,字,符,串,时,,,切记,要使用,deblank,指,令来清除字符串,尾部的空,格字符,【,例,】,使用,deblank,命令清除字符串,尾部空,格,.,departments=,char(ee,cs,econ);,dept1=departments(1,:);,%(1,:),代表第一,行,的,全部,元素,dept2=deblank(dept1);,%,使用,deblank,指令清除,尾部的,空格字符,len1=length(dept1),%,显示变量,dept1,的,长度,=4,len2=length(dept2),%,显示变量,dept2,的,长度,=2,2026/1/30 周五,Matlab,Language,54,8.4,、,字,符,串,操作,类型,的,判断,class,或,ischar,指令,:,可以用来判断,一,个变量的类型或它,是否,为字符串变量。,【,例,】,:,判断一个变量是否为字符串变量。,chinese,=,今日事,今日,毕,;,out1=,class(chinese,),%out1,的,值,是“,char”,x=chinese+1;,out2=,ischar(x,),%out2,的,值,是,0,,代表,x,不是字,符,串,变量,2026/1/30 周五,Matlab,Language,55,8.4,、字符串操作,字符串的合并,可以使用,方括号“,”,直接连接,多,个,字,符,串,变量,,得到一,个,新字,符,串,变量。,也可以使用,strcat,(),字符串合并函数实现字符串构造,【,例,】,命名字符串变量,str1=I like MATLAB,;,%,建立字串,变量,str1,str2=JavaScript,and Perl!;,%,建立字串,变量,str2,str3=str1 str2,%,直接连接,str1,及,str2,,以建立,str3,Str3=strcat(str1,str2),str3=,I like MATLAB,JavaScript,and Perl!,注意:,strcat,函数会把字符串结尾的空格删除,首部空格不删除,2026/1/30 周五,Matlab,Language,56,8.4,、,字,符,串的,操作,字符串比较,strcmp,函数,:,用于比较字符串的,內容的,异同,【,例,】,字符串比较,不相等,返回,0,相等,返回,1,有关函数:,strncmp,(),strcmpi,(),strncmpi,(),str1=today;,str2=tomorrow;,str3=today;,out1=strcmp(str1,str2),%,比较,字,符,串,str1,和,str2,out1=0,%,表示,字,符,串,str1,和,str2,不同,out2=strcmp(str1,str3),%,比较,字,符,串,str1,和,str3,out2=1,%,表示,字,符,串,str1,和,str2,相同,在,MATLAB,中,可以对字符串运用关系运算符,但要求两个字符串具有,相同的长度,,或者其中一个是,标量,。,8.4,、,字,符,串的,操作,字符串比较,用,关系运算符,比较字符串,MATLAB,提供的一些字符串查找和替换函数如下表所示。,8.4,、,字,符,串的,操作,字符串查找和替换,MATLAB,提供的一些数值转换为字符串函数如下表所示。,8.4,、,字,符,串的,操作,字符串与数值间转换,续表,MATLAB,提供的一些字符串转换为数值函数如下表所示。,2026/1/30 周五,Matlab,Language,64,10,空数组(,empty array,),有一维是,0,的数组即为空数组,空数组不占据存储空间,最简单的空数组:,0 x 0,的矩阵,复杂的空数组:,0 x 5 or 10 x 0,例如:,a=;b=ones(0,5);,察看空数组:,a,b,c,%or,whos,a b c,空数组并非全,0,数组,2026/1/30 周五,Matlab,Language,65,10.,空数组(续),数组维数的减小,删除数组的某列和行,a=ones(4),a(:,2)=,删除,(2-D,、,3-D),数组的单个元素,使用“全下标”方式,不能删除单个元素,a(1,2)=,%,系统会警告信息,使用“单下标”可以删除单个元素,a(2:4)=,%,数组,a,将变为向量,使用“,”,同样可以减小,字符数组,的维数,11.1,结构体类型,结构体类型是一种由若干属性(,field,)组成的,MATLAB,数据,其中的每个属性可以是任意数据类型。,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。,11,结构体类型,下图表示了一个结构体(,Personel,),它包括,3,个属性(,Name,、,Score,和,Salary,),其中,Name,是一个字符串,,Score,是一个数值,,Salary,是一个,1,5,的向量。,11.2,结构体数组的构造,构造一个结构体(数组)有两种方法。,利用赋值语句,通过赋值语句为结构体中的每个指定属性赋值,从而构造结构体。,结构矩阵名,.,成员名,=,表达式,利用函数,struct(),在,MATLAB,中,函数,struct(),的具体用法如下:,其中,,,strArray,、,field,和,val,分别表示结构体名、属性名和相应的属性值。,11.3,结构体数组的访问,通过结构体数组的下标引用,可以访问任意元素的所有属性,同时可以对属性进行赋值。,可以根据需要增加或删除结构的成员。例如要给结构矩阵,a,增加一个成员,x4,,可给,a,中任意一个元素增加成员,x4,:,a(1).x4=,410075,;,但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。,要删除结构的成员,则可以使用,rmfield,函数来完成。例如,删除成员,x4,:,a=rmfield(a,x4,);,11.4,结构成员的修改,Matlab,特有的一种数据结构,它的各个元素可以是不同类型,单元矩阵的元素可以是结构或单元数据。,12.1.,矩阵的建立,建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。,Cell=Harry,15,10;15,也可以利用,cell,函数构建空单元矩阵,cell(m,n,),cell(m,n,),cell(size(A,),12.2,矩阵的显示,可以使用,celldisp,函数来显示整个单元矩阵每个元素,如,celldisp(b,),。,12,单元矩阵,12.3,矩阵的访问,可以用带有大括号下标的形式引用单元矩阵元素。例如,b3,3,。,12.4,矩阵的赋值,通过矩阵访问的方法单独赋值某个元素,,还可以删除单元矩阵中的某个元素。,12.5,常见函数,num2cell,cell2struct,iscell,struct2cell,12,单元矩阵,下一次课,Matlab,程序设计,2026/1/30 周五,Matlab,Language,72,下一次课,Matlab,程序设计,2026/1/30 周五,Matlab,Language,73,
展开阅读全文