《部分矩阵》PPT课件.ppt

上传人:wuy****n92 文档编号:72431884 上传时间:2023-02-11 格式:PPT 页数:41 大小:366KB
返回 下载 相关 举报
《部分矩阵》PPT课件.ppt_第1页
第1页 / 共41页
《部分矩阵》PPT课件.ppt_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《《部分矩阵》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《部分矩阵》PPT课件.ppt(41页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 第2章 Matlab及其应用2.1 MATLAB的基本矩阵运算的基本矩阵运算2.2 关系和逻辑运算关系和逻辑运算2.3 矩阵操作矩阵操作2.4 时间和日期函数时间和日期函数2.5 退出和保存工作空间退出和保存工作空间2.6 Matlab的变量及数据类型的变量及数据类型2.1、MATLAB的基本矩阵运算2.1.1 简单矩阵输入1、命令行简单键盘输入用于很少数据输入 NaN Inf2、文件形式输入文本文件:从文本文件中读入数据 mat文件:matlab自有的数据格式 B=1 2 3;4 5 6B=1 2 3 4 5 62.1.2 语句生成矩阵1、线性等间距格式矩阵(1)X=起始值:增加值:结束值

2、(2)linspace命令a=linspace(1,10,5);(3)logspace命令b=logspace(0,2,10)2、矩阵连接 c=a b;3、用函数生成矩阵:zeros ones eye randn 2.1.3 矩阵运算1、矩阵的运算符:加法:減法*:乘法;点乘:.*/:右除;右除:./:左除;左除:.:乘方2、矩阵的转置等运算 共轭转置;.转置inv:矩阵求逆det:求行列式值eig:求特征值与特征向量运算规则:从左到右;先乘除后加减;乘方运算符最高运算规则:从左到右;先乘除后加减;乘方运算符最高(1)两矩阵加减)两矩阵加减 A、维数相同时,进行加减运算时,对应的元素进行加减;

3、、维数相同时,进行加减运算时,对应的元素进行加减;B、矩阵与标量加减,用矩阵中的每个元素都与标量进行加减运算;、矩阵与标量加减,用矩阵中的每个元素都与标量进行加减运算;(2)两矩阵相乘)两矩阵相乘 A、前提是前一矩阵的列等于后一矩阵的行,与数学约定一样;、前提是前一矩阵的列等于后一矩阵的行,与数学约定一样;B、矩阵与标量相乘,用矩阵中的每个元素都与标量进行相乘;、矩阵与标量相乘,用矩阵中的每个元素都与标量进行相乘;(3)矩阵中的元素对元素的相乘:)矩阵中的元素对元素的相乘:.*(4)矩阵中的元素对元素的相除:)矩阵中的元素对元素的相除:./.(5)乘方运算)乘方运算 z=x.y x,y均为向量

4、:均为向量:z(i)=x(i)y(i)x为向量为向量,y为标量:为标量:z(i)=x(i)y x为标量为标量,y为向量:为向量:z(i)=xy(i)2.1.4 矩阵的超越函数函数名函数名含含义义abs绝对值或者复数模sqrt平方根real实部imag虚部conj复数共轭round4舍5入到整数fix舍入到最接近0的整数floor舍入到最接近-的整数ceil舍入到最接近的整数函数名函数名含含义义sign符号函数sin正弦cos余弦tan正切asin反正弦acos反余弦atan反正切atan2第四象限反正切函数名函数名含含义义sinh双曲正弦cosh双曲余弦tanh双曲正切exp自然指数log自然

5、对数log10以10为底的对数2.2 关系和逻辑运算1、关系操作符(1)MATLAB常用的关系操作符有:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)。(2)MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。(3)如果满足指定的关系,返回1,否则返回0。a=1:9;b=a4b=0 0 0 0 1 1 1 1 1c=a(a4)c=5 6 7 8 92、逻辑操作符(1)逻辑操作符定义了一种与或非的关系表达式。逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有的逻辑操作符有&(与与)、|(或或)、(

6、非非)(2)所有逻辑运算符连接的两个操作数或者同维、同大小,或者其中一个为标量。所有逻辑运算符连接的两个操作数或者同维、同大小,或者其中一个为标量。(3)逻辑运算符都是对元素的操作,每个非零元素都当作逻辑运算符都是对元素的操作,每个非零元素都当作“1”处理,逻辑运算的处理,逻辑运算的结果是由结果是由1和和0构成的矩阵。构成的矩阵。例如:c=(a4)c=1 1 1 1 0 0 0 0 0c=(a4)&(aB=1 2 3;4 5 6;7 8 9;B(2,:)=B=1 2 3 7 8 92、为了提取矩阵为了提取矩阵a的第的第n行、第行、第m列的元素值,使用列的元素值,使用a(n,m)可以得到。同样,

7、将矩阵可以得到。同样,将矩阵a的的第第n行、第行、第m列的元素值赋为列的元素值赋为r,使用,使用a(n,m)=r这样的命令。这样的命令。注意注意:在提取矩阵值时,行或列的值大于矩阵的大小,则出错;在给矩阵赋值时,如在提取矩阵值时,行或列的值大于矩阵的大小,则出错;在给矩阵赋值时,如果行或者列超出矩阵的大小,则果行或者列超出矩阵的大小,则MATLAB自动扩充矩阵的规模,使得可以赋值,扩充自动扩充矩阵的规模,使得可以赋值,扩充部分以零填充。部分以零填充。3、利用矩阵下标,、利用矩阵下标,MATLAB还提供了子矩阵功能。同样是上面的还提供了子矩阵功能。同样是上面的a(n,m),如果如果n和和m是向量

8、,而不是标量,则将获得指定矩阵的子块是向量,而不是标量,则将获得指定矩阵的子块.4、矩阵的子块还可以被赋值。如果在取子块时,、矩阵的子块还可以被赋值。如果在取子块时,n或或m是是“:”,则返回指定,则返回指定的所有行或列。的所有行或列。5、矩阵的序号编址:按列计数。、矩阵的序号编址:按列计数。矩阵大小1、在、在MATLAB命令行中,使用命令行中,使用whos命令可以查看到所有变量的大小。命令可以查看到所有变量的大小。2、为了获得矩阵或者向量的大小,、为了获得矩阵或者向量的大小,MATLAB还提供了两个有用的函数还提供了两个有用的函数size和和length。(1)size调用:调用:A、不用参

9、量、不用参量x时:时:m,n=size(a)。当只有一个输出变量时,。当只有一个输出变量时,size返回一个行向量,第返回一个行向量,第一个数为行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个一个数为行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个返回数为列数。返回数为列数。B、当使用、当使用x时,只能有一个输出变量:时,只能有一个输出变量:m=size(a,x),x=1返回行数,返回行数,x=2返回列数,返回列数,这时只有一个返回值。这时只有一个返回值。(2)length返回行数或者列数的最大值,即返回行数或者列数的最大值,即length(a)=max

10、(size(a)。2.3.3 矩阵操作函数MATLAB提供了一组执行矩阵操作的函数,例如:flipud(a)使得矩阵上下翻转,使得矩阵上下翻转,fliplr(a)使得矩阵左右翻转使得矩阵左右翻转 rot90(a)使矩阵使矩阵a逆时针旋转逆时针旋转90度度 rot90(a,k)使矩阵使矩阵a逆时针旋转逆时针旋转k*90度度 repmat(A,m,n)平铺矩阵,将矩阵平铺矩阵,将矩阵A复制复制m*n块块2.3.4 矩阵查找和排序1、子矩阵的查找使用子矩阵的查找使用find命令完成,它返回关系表达式命令完成,它返回关系表达式为真的下标。例如:为真的下标。例如:a=10:20;find(a15)ans

11、=7 8 9 10 112、矩阵的排序:、矩阵的排序:sort函数,它将矩阵按照升序排列。函数,它将矩阵按照升序排列。2.4 时间和日期时间和日期1、日历函数:calendar2、时间函数:clock3、查看CPU 时间:cputime4、日期函数:date5、秒表定时:tic toc2.5退出和保存工作空间:退出和保存工作空间:1、save:工作空间中的所有变量保存在磁盘上名为:工作空间中的所有变量保存在磁盘上名为matlab.mat的文件中。的文件中。2、save 文件名文件名 变量名变量名将指定的变量保存在指定的文件中。将指定的变量保存在指定的文件中。如:如:save temp x y

12、z把把x y z这这3个变量保存在文件个变量保存在文件temp.mat中。中。3、下次加载、下次加载MATLAB时,可以利用时,可以利用load命令将保存在文件中的命令将保存在文件中的变量恢复到工作空间中,其格式为:变量恢复到工作空间中,其格式为:(1)load将保存在将保存在matlab.mat中的变量装入到中的变量装入到matlab空间中。空间中。(2)load 文件名文件名 变量名变量名从指定文件中将指定的变量装入到从指定文件中将指定的变量装入到matlab的工作空间中。的工作空间中。如:如:load temp x从文件从文件temp.mat 中只将变量中只将变量x装入到装入到 matl

13、ab的工作空间中。的工作空间中。2.6 Matlab的变量及数据类型变量区分字母的大小写名字不能超过31(Matlab6.5版本为不超过65个)个字符变量必须以字母开头,之后可以是任意字母、数字或者下划线变量中不能含有标点符号2.6.1 特殊变量特殊变量 取值 ans 用于结果的缺省变量名 pi 圆周率 eps 计算机的最小数 inf 无穷大 如 1/0 nan 不等量 如 0/0 i j i=j=1-nargin 函数的输入变量数目 nargout 函数的输出变量数目 realmin 最小的可用正实数 realmax 最大的可用正实数 2.6.2 复数不需要特殊的处理,可以直接进行。不需要特

14、殊的处理,可以直接进行。复数可以表示为:复数可以表示为:a=10-9i 注意注意:虚部与虚数单位之间不能留空格:虚部与虚数单位之间不能留空格 函数:complexz=complex(3,4)z=complex(3)z=complex(3,0)2.6.3 MATLAB数据类型数据类型:数值类型、字符型、稀疏型、单元型、结构型、逻辑类型数值类型、字符型、稀疏型、单元型、结构型、逻辑类型最常使用的是数值类型和字符型;稀疏型用于稀疏矩阵;单元型和最常使用的是数值类型和字符型;稀疏型用于稀疏矩阵;单元型和结构型用于编写大型软件;结构型用于编写大型软件;8位型(位型(6.0以上版本:以上版本:16位型、位

15、型、32位型)位型)用于图象处理。用于图象处理。1、数值类型、数值类型(double):在缺省情况下,当结果为整数,作为整数显示;当结果为实数,在缺省情况下,当结果为整数,作为整数显示;当结果为实数,以小数后以小数后4位的精度近似显示。位的精度近似显示。format short(默认默认)format long 不同的整型数据之间不能运算,例如:int8(22)*int16(5)2、字符型(char):a=sss;bbba=sssbbb(1)字符数组的定义:字符数组就是字符串,字符串中的每一个字符在系统内部都相应地表示一个数值。a=You are welcome!a=You are welco

16、me!size(a)ans=1 16 相关函数相关函数A、函数disp用来显示字符串:disp(Hello)Hello B、判断一个变量是否为字符型数组,可以用函数class或ischar。x=class(a)y=ischar(a)x=chary=1(2)字符与数值的相互转换:double:将一个字符串转换为一个数值 char:将数值转换为字符串s=Good morning!s1=double(s)s2=char(s1)s=Good morning!s1=71 111 111 100 32 109 111 114 110 105 110 103 33s2=Good morning!(3)二维字

17、符数组:创建二维字符数组时,每行的长度要相等长度要相等。如果字符串长度不等,可以用空格充填较短的字符串。例如:s=abc;defg s=abc defg 用char函数创建二维字符数组比较方便。当字符串长度不等时,char函数可以自动地在较短的字符中加上一定数量的尾部空格,使其与最长字符串的长度相等。例如:例如:y=char(abc,defg,abcde)z1=length(y)z2=size(y)y=abc defg abcdez1=5z2=3 5(4)字符串的比较 A、strcmp:判别两个字符串是否相等B、strncmp:判别两个字符串的前n个字符是否相等s1=glisten;s2=gl

18、itter;a1=strcmp(s1,s2)a2=strncmp(s1,s2,3)a1=0a2=1 注:尾部的空格s1=This is a good examplestrrep(s1,good,great)strrep(s1,bad,great)strrep(s1,great)A=aaa;bbbbbB=strjust(A,center)(5)字符串的合并3、稀疏型(sparse):含有大量0的矩阵,称为矩阵。只存储矩阵中的非0元素speye(4)生成单位稀疏矩阵ans=(1,1)1 (2,2)1 (3,3)1 (4,4)1sprand 均匀分布随机数稀疏矩阵生成函数sparse 把满矩阵转化为

19、稀疏矩阵 调用格式:sparse(A)sparse(i,j,s,m,n)i和和j为矢量,指矩阵中非为矢量,指矩阵中非0元素的行号和列号,元素的行号和列号,s是一个全部是一个全部 元素为非元素为非0的矢量,的矢量,m和和n分别为输出稀疏矩阵的行数和列数分别为输出稀疏矩阵的行数和列数 i,j,s=find(s)m,n=size(s)S=sparse(i,j,s,m,n)4、单元型(cell):把不同类型的数据存储在一起的数组称为单元数组。单元数组中的每个元素是其他任意一种数据类型,通常可以将相关的尺寸大小不同的数据组合在一起。a=1,good,1 2 3 a=1 good 1x3 double(1

20、)创建单元数组:cellc=cell(n):生成一个n*n维的空数组c=cell(m,n):生成一个m*n维的空数组c=cell(size(A):生成一个和所包含的数组A阶数完全相同的空数组EX1:A=eye(2)c=cell(size(A)A=1 0 0 1c=EX2:给单元数组赋值D=cell(1,3)D1,1=Good;D1,2=1 2;4 5;D1,3=1+4i;D D=D=Good 2x2 double 1.0000+4.0000i EX3:利用直接输入的方法创建单元数组,单元数组的下标用圆括号括起来,右边是单元数组的内容,用花括号花括号括起来。Aa(1,1)=GOOD;Aa(1,2

21、)=200;Aa(2,1)=5-6i;Aa(3,2)=1 2;4 5 Aa=GOOD 200 5.0000-6.0000i 2x2 double (2)单元数组的显示A、直接显示AaAa=GOOD 200 5.0000-6.0000i 2x2doubleB、利用函数显示celldisp(Aa)celldisp(Aa,Bb)Aa1,1=GOODAa2,1=5.0000-6.0000iAa3,1=Aa1,2=200Aa2,2=Aa3,2=1 2 4 5Bb表示显示的名字C、利用图形显示单元数组cellplot(Aa)cellplot(Aa,legend)(3)单元数组的运算)单元数组的运算X=ce

22、ll(2,3)X1,2=Welcome;X1,3=ones(4);X2,3=1 2 3;4 5 6;7 8 9Da=sum(X1,3)Db=sum(X2,3)X=X=Welcome 4x4 double 3x3 doubleDa=4 4 4 4Db=12 15 18 (4)单元数组的变形E=reshape(X,1,6)cellplot(E)E=Welcome 4x4 double 3x3 double (5)字符型单元数组:由于字符矩阵要求矩阵的每一行的长度相等,需要在字符串的尾端加入空格,在读取的时候,又常常将末尾的空格去掉,很不方便。由于单元数组允许不同的单元内有不同类型和长度的数据,问题

23、就可以避免。cellstr:将标准的字符型数组转换为字符型单元数组。EX1:ne=aaa;bb;cellstr(ne)ans=aaa bb5、结构型(struct):把不同类型的数组存储在一起的数组称为结构数组。结构数组相当于数据库的记录。结构数组中不同类型的数组是通过不同的域名来区分的。在MATLAB的结构数组中,每个元素都是由不同的数据类型所组成的,不同的数据类型分别放在不同的数据区域里,称为结构数组的域。(1)建立结构数组A、利用函数struct建立结构数组调用格式:s=struct(field 1,values 1,field 2,values 2,)例:sxx=struct(name

24、,zhao,Li,wang,age,20,21,29,address,changda)%注意:所有的address都赋相同的值 sxx(1)sxx(2)B、利用赋值语句直接生成结构数组sss.name=zhou;sss.age=10;sss.address=changda;sss sss.name=zhao sss=name:zhao age:10 address:changda sss(3).address=chang an sss=1x3 struct array with fields:name age address 相关函数相关函数A、getfield:获取结构数组中某个域的内容B、setfield:设置结构数组中某个域的内容C、rmfield:删除结构数组的域D、isfield:判断某个变量域是否是一个结构数组的域E、isstruct:判断某个变量域是否是一个结构数组6、逻辑数据类型:创建逻辑型数据的函数logical:将任意类型的数组转变为逻辑类型数组,非零为真,零为假true:产生逻辑真值数组false:产生逻辑假值数组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com