matlab基础第二次.ppt

上传人:sh****n 文档编号:2819781 上传时间:2019-11-30 格式:PPT 页数:54 大小:524.81KB
返回 下载 相关 举报
matlab基础第二次.ppt_第1页
第1页 / 共54页
matlab基础第二次.ppt_第2页
第2页 / 共54页
matlab基础第二次.ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
1.7.3矩阵的拆分,1矩阵元素 对矩阵的单个元素进行赋值操作。例如,如果想将矩阵A的第2行第3列的元素赋为76,则可以通过下面语句来完成: A(2,3)=76 这时将只改变该元素的值,而不影响其他元素的值。 如果给出的行下标或列下标大于原来矩阵的行数和列数,则MATLAB将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为零。,1.7.3矩阵的拆分,例如: A=1,2,3;4,5,6; A(4,6)=100 A = 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中,也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。矩阵元素按列编号,先第1列,再第2列,依次类推。例如: A=10,20,30;40,50,60; A(3) ans = 20,1.7.3 矩阵的拆分,序号(Index)与下标(Subscript)是一一对应的,以m n矩阵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 = 1 j = 3 length(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个元素的行向量x Y=reshape(X,3,4) %利用向量x建立34矩阵y Y = 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)利用冒号表达式获得子矩阵 A(m,n)表示取A矩阵第m行、第n列的元素,A(m,:)表示取A矩阵第m行的全部元素,A(:,n)表示取A矩阵的第n列全部元素。 例如 A=1:2:5; B=A;2*A,3*A B = 1 3 5 2 6 10 3 9 15,1.7.3 矩阵的拆分,B(2,:) ans = 2 6 10 B(:,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 10;11 12 13 14 15;16 17 18 19 20 A = 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 15 A(2:3,1:2:5) ans = 6 8 10 11 13 15,1.7.3 矩阵的拆分, A(:)将矩阵A每一列元素堆叠起来,成为一个列向量,这也是MATLAB变量的内部存储方式。例如: A=-45 65 71;27 35 91 A = -45 65 71 27 35 91 B=A(:) B = -45 27 65 35 71 91,1.7.3 矩阵的拆分,利用一般向量和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 20 A(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 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 算术运算,一个标量也可以和其他不同维数的矩阵进行加减运算。例如: x=2,-1,0;3,2,-4; y=x-1 y = 1 -2 -1 2 1 -5 y=y+x y = 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 = mtimes Inner matrix dimensions must agree. 在MATLAB中,还可以进行矩阵和标量相乘,标量可以是乘数也可以是被乘数。矩阵和标量相乘是矩阵中的每个元素与此标量相乘。,1.7.4 算术运算,(3)矩阵除法 在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=ba c1 = 6.0755 -3.3396 2.6038 -7.6792 5.0566 -2.4340 -0.1321 0.0943 -0.0566 c2=b/a c2 = -0.1667 -3.3333 2.5000 -0.8333 -7.6667 5.5000 12.8333 63.6667 -36.5000,1.7.4 算术运算,(4)矩阵的乘方和平方根 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。例如: A=1 2 3;4 5 6;7 8 0; A2 ans = 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矩阵平方根条件数的估计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.7694 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,-1,0;0,1,1; C=A.*B C = -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./y z1 = -0.5000 2.0000 1.0000 -4.0000 5.0000 1.5000 z2=y.x z2 = -0.5000 2.0000 1.0000 -4.0000 5.0000 1.5000,1.7.4 算术运算,指数也可以是标量。例如: x=1 2 3;4 5 6; z=x.2 z = 1 4 9 16 25 36,1.7.4 算术运算,底也可以是标量。例如: x=1 2 3; y=4 5 6; z1=2.x,y z1 = 2 4 8 16 32 64 z2=2.x;y z2 = 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.0000 y=abs(y) y = 0 1.0000 0.0000 1.0000 0.0000,1.7.4 算术运算,(2)abs函数可以求实数的绝对值、复数的模、字符串的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 13 x=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必须为相同大小的实矩阵或为标量。 当y 0时,rem(x, y) = x y.*fix(x./y) 而mod(x,y) = x y.*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 2 x=-5; y=3; rem(x,y),mod(x,y) ans = -2 1,1.7.5 关系运算,MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、= =(等于)、=(不等于)。 (1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。例如: A=5 A = 5 A=A=10 A = 0,1.7.5 关系运算,(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素的比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,1.7.5 关系运算,例如: A=1 2 3;4 5 6; B=3 1 4;5 2 10; AB ans = 0 1 0 0 1 0 C=A=B C = 1 1 1 1 1 1,1.7.5 关系运算,(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的运算结果是一个维数与矩阵相同的矩阵,它的元素由0或1组成。,1.7.5 关系运算,例如: A=3 1 4;5 2 10; B=A4 B = 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全为非零时,运算结果为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 = 0 1 0 1 0,1.7.6 逻辑运算,(2)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。 例如: a=23 54;126 -78; b=a|1&a0 b = 1 1 1 0 (3)逻辑非是单目运算符,也服从矩阵运算规则。,1.7.6 逻辑运算,在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。,1.7.6 逻辑运算,【例】建立矩阵A,然后找出在 10,20 区间的元素的位置。 A=4,15,-45,10,6;56,0,17,-45,0 A = 4 15 -45 10 6 56 0 17 -45 0 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数值矩阵。相反,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 = 14,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), = ,num2str(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范围内的全部元素。 五、的英语意思是什么?其主要语言功能有哪些?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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