matlab基础第二次.ppt

上传人:小飞机 文档编号:6511861 上传时间:2023-11-08 格式:PPT 页数:54 大小:262.99KB
返回 下载 相关 举报
matlab基础第二次.ppt_第1页
第1页 / 共54页
matlab基础第二次.ppt_第2页
第2页 / 共54页
matlab基础第二次.ppt_第3页
第3页 / 共54页
matlab基础第二次.ppt_第4页
第4页 / 共54页
matlab基础第二次.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《matlab基础第二次.ppt》由会员分享,可在线阅读,更多相关《matlab基础第二次.ppt(54页珍藏版)》请在三一办公上搜索。

1、矩阵的拆分,1矩阵元素 对矩阵的单个元素进行赋值操作。例如,如果想将矩阵A的第2行第3列的元素赋为76,则可以通过下面语句来完成:A(2,3)=76 这时将只改变该元素的值,而不影响其他元素的值。如果给出的行下标或列下标大于原来矩阵的行数和列数,则MATLAB将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为零。,矩阵的拆分,例如:A=1,2,3;4,5,6;A(4,6)=100A=1 2 3 0 0 0 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100,1.7.3 矩阵的拆分,在MATLAB中,也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内

2、存中的排列顺序。矩阵元素按列编号,先第1列,再第2列,依次类推。例如:A=10,20,30;40,50,60;A(3)ans=20,1.7.3 矩阵的拆分,序号(Index)与下标(Subscript)是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。例如:sub2ind(size(A),1,3)ans=5 size(A)函数返回包含两个元素的向量,分别是矩阵A的行数和列数,即A是2行3列的矩阵,其中第1行第3列元素的序号为5。,1.7.3 矩阵的拆分,I,j=ind2sub(size(A),5)I=1j

3、=3length(A):给出行数和列数中的较大者,即length(A)max(size(A)ndims(A):给出A的维数,1.7.3 矩阵的拆分,Reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵。例如:X=linspace(0,11,12)*pi;%产生有12个元素的行向量xY=reshape(X,3,4)%利用向量x建立34矩阵yY=0 9.4248 18.8496 28.2743 3.1416 12.5664 21.9911 31.4159 6.2832 15.7080 25.1327 34.5575,1.7.3 矩阵的拆分,2.矩阵的拆分(1)

4、利用冒号表达式获得子矩阵 A(m,n)表示取A矩阵第m行、第n列的元素,A(m,:)表示取A矩阵第m行的全部元素,A(:,n)表示取A矩阵的第n列全部元素。例如A=1:2:5;B=A;2*A,3*AB=1 3 5 2 6 10 3 9 15,1.7.3 矩阵的拆分,B(2,:)ans=2 6 10B(:,3)ans=5 10 15,1.7.3 矩阵的拆分,A(m1:m2,:)表示取A矩阵第m1m2行的全部元素,A(:,n1:n2)表示取A矩阵第n1n2列的全部元素,A(m1:m2,n1:n2)表示取A矩阵第m1m2行内,并在第n1n2列中的所有元素。例如:A=1 2 3 4 5;6 7 8 9

5、 10;11 12 13 14 15;16 17 18 19 20A=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20,1.7.3 矩阵的拆分,A(2:3,4:5)ans=9 10 14 15A(2:3,1:2:5)ans=6 8 10 11 13 15,1.7.3 矩阵的拆分,A(:)将矩阵A每一列元素堆叠起来,成为一个列向量,这也是MATLAB变量的内部存储方式。例如:A=-45 65 71;27 35 91A=-45 65 71 27 35 91B=A(:)B=-45 27 65 35 71 91,1.7.3 矩阵的拆分,利用一般向量和

6、end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。例如:A=1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;A(end,:)%取A最后一行元素ans=16 17 18 19 20A(1,4,3:end)%取A第1,4两行中第3列到 最后一列的元素ans=3 4 5 18 19 20,1.7.3 矩阵的拆分,(2)利用空矩阵删除矩阵的元素 在MATLAB中,空矩阵是指无任何元素的矩阵,表示形式为。给变量x赋空矩阵的语句为 x=将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。例如:A=1 2 3 4

7、 5 6;7 8 9 10 11 12;13 14 15 16 17 18;A(:,2 4)=A=1 3 5 6 7 9 11 12 13 15 17 18 其中第2条命令将删除A的第2列和第4列元素。,1.7.4 算术运算,1基本算术运算 MATLAB的基本算术运算有:+(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。(1)矩阵加减运算 运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。,1.7.4 算术运算,一个标量也可以和其他不同维数的矩阵进行加减运算。例

8、如:x=2,-1,0;3,2,-4;y=x-1y=1-2-1 2 1-5y=y+xy=3-3-1 5 3-9,1.7.4 算术运算,(2)矩阵乘法 矩阵A和B进行乘法运算,要求A的列数与B的行数相等,或称A和B两矩阵维数相容。如果两者的维数不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。例如:A=1,2,3;4,5,6;B=A*A?Error using=mtimesInner matrix dimensions must agree.在MATLAB中,还可以进行矩阵和标量相乘,标量可以是乘数也可以是被乘数。矩阵和标量相乘是矩阵中的每个元素与此标量相乘。,1.7.4 算术运算,(3)矩阵

9、除法 在MATLAB中,有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。,1.7.4 算术运算,例如:a=1 2 3;4 2 6;7 4 9;b=4 3 2;7 5 1;12 7 92;c1=bac1=6.0755-3.3396 2.6038-7.6792 5.0566-2.4340-0.1321 0.0943-0.0566 c2=b/ac2=-0.1667-3.3333 2.5000-0.8333-7.6667 5.5000 12.

10、8333 63.6667-36.5000,1.7.4 算术运算,(4)矩阵的乘方和平方根 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。例如:A=1 2 3;4 5 6;7 8 0;A2ans=30 36 15 66 81 42 39 54 69,1.7.4 算术运算,用sqrtm函数求取矩阵的平方根。其调用格式:X=sqrtm(A):求矩阵A的平方根X,即X*X=A。X,resnorm=sqrtm(A):不生成任何警告信息,并返回残差norm(A-X2,fro)/norm(A,fro)X,alpha,condest=sqrtm(A):返回稳定性因子alpha和X矩阵平方根条件数的

11、估计condest.,1.7.4 算术运算,例如:a=1 3 4;2 6 5;3 2 4;c=sqrtm(a)c=0.6190+0.8121i 0.8128-0.2263i 1.1623-0.4157i 0.3347+0.1497i 2.3022-0.0417i 1.1475-0.0766i 1.0271-0.5372i 0.3347+0.1497i 1.6461+0.2750i,1.7.4 算术运算,(4)矩阵的指数和对数 矩阵的指数运算用函数expm实现,对数运算用函数logm实现。例如:a=1 3 4;2 6 5;3 2 4;d=expm(a)d=1.0e+004*0.4668 0.76

12、94 0.9200 0.7919 1.3065 1.5613 0.4807 0.7919 0.9475 e=logm(a)e=0.5002+2.4406i 0.5960-0.6800i 0.7881-1.2493i 0.4148+0.4498i 1.4660-0.1253i 1.0108-0.2302i 0.5780-1.6143i 0.4148+0.4498i 1.0783+0.8263i,1.7.4 算术运算,2点运算 两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。点运算符有.*、./、.和.。例如:A=1,2,3;4,5,6;7,8,9;B=-1,0,1;1,-

13、1,0;0,1,1;C=A.*BC=-1 0 3 4-5 0 0 8 9,1.7.4 算术运算,如果A、B两矩阵具有相同的维数,则A./B表示A矩阵除以B矩阵的对应元素。B.A等价于A./B。x=1 2 3;4 5 6;y=-2 1 3;-1 1 4;z1=x./yz1=-0.5000 2.0000 1.0000-4.0000 5.0000 1.5000 z2=y.xz2=-0.5000 2.0000 1.0000-4.0000 5.0000 1.5000,1.7.4 算术运算,指数也可以是标量。例如:x=1 2 3;4 5 6;z=x.2z=1 4 9 16 25 36,1.7.4 算术运算

14、,底也可以是标量。例如:x=1 2 3;y=4 5 6;z1=2.x,yz1=2 4 8 16 32 64 z2=2.x;yz2=2 4 8 16 32 64,1.7.4 算术运算,MATLAB常用数学函数,1.7.4 算术运算,(1)函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。例如:y=sin(0:pi/2:2*pi)y=0 1.0000 0.0000-1.0000-0.0000y=abs(y)y=0 1.0000 0.0000 1.0000 0.0000,1.7.4 算术运算,(2)abs函数可以求实数的绝对值、复数的模、字

15、符串的ASCII码值。x=-3.14,3+4i;abs(x)ans=3.1400 5.0000,1.7.4 算术运算,(3)用于取整的函数有fix、floor、ceil、round,要注意它们的区别。例如:x=fix(13.37),floor(13.37),ceil(13.37),round(13.37)x=13 13 14 13x=fix(-13.67),floor(-13.67),ceil(-13.67),round(-13.67)x=-13-14-13-14,1.7.4 算术运算,(4)rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。

16、当y0时,rem(x,y)=xy.*fix(x./y)而mod(x,y)=xy.*floor(x./y);当y=0时,rem(x,0)=NaN,而mod(x,0)=x。显然,当x,y同号时,rem(x,y)与mod(x,y)相等。rem(x,y)的符号与x相同,而mod(x,y)的符号与y相同。,1.7.4 算术运算,例如:x=5;y=3;rem(x,y),mod(x,y)ans=2 2x=-5;y=3;rem(x,y),mod(x,y)ans=-2 1,1.7.5 关系运算,MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等于)。(1)当两个比较量是标量时,直

17、接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。例如:A=5A=5A=A=10A=0,1.7.5 关系运算,(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素的比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,1.7.5 关系运算,例如:A=1 2 3;4 5 6;B=3 1 4;5 2 10;ABans=0 1 0 0 1 0 C=A=BC=1 1 1 1 1 1,1.7.5 关系运算,(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,

18、并给出元素比较结果。最终的运算结果是一个维数与矩阵相同的矩阵,它的元素由0或1组成。,1.7.5 关系运算,例如:A=3 1 4;5 2 10;B=A4B=0 0 0 1 0 1,1.7.6 逻辑运算,MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非)。此外,MATLAB还提供了4个逻辑运算函数:and(a,b)、or(a,b)、not(a)和xor(a,b)。在逻辑运算中,确认非零元素为真,用1表示;非零元素为假,用0表示。设参与逻辑运算的是两个标量a和b,那么,逻辑运算符和逻辑运算函数的含义如下:,1.7.6 逻辑运算,a&b或函数and(a,b)表示a和b作逻辑与运算,当a、b

19、全为非零时,运算结果为1,否则为0。a|b或函数or(a,b)表示a和b作逻辑或运算,当a、b中只要有一个非零,运算结果为1。a和函数not(a)表示对a作逻辑非运算,当a是零时,运算结果为1;当a非零时,运算结果为0。函数xor(a,b)表示a和b作逻辑异或运算,当a、b的值不同时,运算结果为1,否则运算结果为0。,1.7.6 逻辑运算,(1)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。例如:A=23,54,12,6,-78;B=5,324,7,-43,76;C1=A10&B10,B10)C2=

20、0 1 0 1 0,1.7.6 逻辑运算,(2)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。例如:a=23 54;126-78;b=a|1&a0b=1 1 1 0(3)逻辑非是单目运算符,也服从矩阵运算规则。,1.7.6 逻辑运算,在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。,1.7.6 逻辑运算,【例】建立矩阵A,然后找出在10,20区间的元素的位置。A=4,15,-45,10,6;56,0,17,-45,0A=4 15-45 10 6 56 0 17-45 0

21、 find(A=10&A=20)ans=3 6 7,1.8 字 符 串,字符串的每个字符都是字符矩阵的一个元素。其构建方式是通过单撇号括起来的字符序列来实现的。例如:xm=Beijing 2008 xm=Beijing 2008 MATLAB将一个字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。,1.8 字 符 串,建立多行字符串矩阵。多行字符串要求各行字符数要相等。可以用空格调节各行的长度。例如:ch=abcdef;123456 ch=abcdef 123456 字符串是以ASCII形式存储的。abs和double函数都可以用来获取字符串矩阵所对应的ASCII数值矩阵。

22、相反,char函数可以把ASCII矩阵转换为字符串矩阵。,1.8 字 符 串,【例】建立一个字符串向量,然后对该向量做如下处理。(1)取第1218个字符组成的子字符串。(2)将字符串中的小写字母变成相应的大写字母,其余字符不变。(3)统计字符串中小写字母的个数。命令如下:ch=Welcome to Beijing;subch=ch(12:18)%取子字符串 subch=ch(12:18)subch=Beijing,1.8 字 符 串,k=find(ch=a%将小写字母变成相应的大写字母char(ch)ans=WELCOME TO BEIJING length(k)%统计小写字母的个数ans=1

23、4,1.8 字 符 串,把字符串的内容作为对应的MATLAB语句来执行的函数是eval.eval(t)其中t为字符串。例如:x=3;y=4;m=sqrt(x*x+y*y),x+y;y=eval(m)y=5 7,1.8 字 符 串,1.8 字 符 串,关于字符串的写法,还要注意:(1)若字符串中的字符含有单撇号,则该单撇号字符应用两个单撇号来表示。例如:disp(Its a book.)将输出:Its a book.,1.8 字 符 串,(2)可以用字符串向量的形式连接多个字符串,即用中括号括起来。例如:x=8;y=10;disp(num2str(x),+,num2str(y),=,num2st

24、r(x+y)其中disp函数的自变量是一个长字符串。输出为8+10=18,本 章 小 结,MATLAB的发展MATLAB应用MATLAB的功能MATLAB的特点MATLAB的系统构成MATLAB矩阵及基本运算、变量、常用函数,作 业,一、在一个MATLAB命令中,3+4i和3+4*i有何区别?二、在MATLAB环境下,建立了一个变量p,同时又在当前目录下建立了一个M文件p.m,如果需要运行p.m文件,该如何处理?三、写出完成下列操作的命令(1)将矩阵A第25行中第1、3、5列元素赋给矩阵B;(2)删除A的第7号元素;(3)将矩阵A的每个元素值加30;(4)求矩阵A的大小和维数;,作 业,(5)将含有12个元素的向量x转换成34矩阵;(6)求一个字符串的ASCII;(7)求一个ASCII所对应的字符。四、已知A=97 67 34 10;-78 75 65 5;32 5-23-59;0-12 54 7写出完成下列操作的命令:(1)取出的前3行构成矩阵,前两列构成矩阵,右下角32子矩阵构成矩阵,B与C的乘积构成E;(2)输出50,100范围内的全部元素。五、的英语意思是什么?其主要语言功能有哪些?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号