MATLAB第二部分-矩阵.pptx
第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)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、维数相同时,进行加减运算时,对应的元素进行加减;、维数相同时,进行加减运算时,对应的元素进行加减;B、矩阵与标量加减,用矩阵中的每个元素都与标量进行加减运算;、矩阵与标量加减,用矩阵中的每个元素都与标量进行加减运算;(2)两矩阵相乘)两矩阵相乘 A、前提是前一矩阵的列等于后一矩阵的行,与数学约定一样;、前提是前一矩阵的列等于后一矩阵的行,与数学约定一样;B、矩阵与标量相乘,用矩阵中的每个元素都与标量进行相乘;、矩阵与标量相乘,用矩阵中的每个元素都与标量进行相乘;(3)矩阵中的元素对元素的相乘:)矩阵中的元素对元素的相乘:.*(4)矩阵中的元素对元素的相除:)矩阵中的元素对元素的相除:./.(5)乘方运算)乘方运算 z=x.y x,y均为向量:均为向量: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自然对数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的逻辑操作符有的逻辑操作符有&(与与)、|(或或)、(非非)(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)可以得到。同样,将矩阵可以得到。同样,将矩阵a的的第第n行、第行、第m列的元素值赋为列的元素值赋为r,使用,使用a(n,m)=r这样的命令。这样的命令。注意注意:在提取矩阵值时,行或列的值大于矩阵的大小,则出错;在给矩阵赋值时,如在提取矩阵值时,行或列的值大于矩阵的大小,则出错;在给矩阵赋值时,如果行或者列超出矩阵的大小,则果行或者列超出矩阵的大小,则MATLAB自动扩充矩阵的规模,使得可以赋值,扩充自动扩充矩阵的规模,使得可以赋值,扩充部分以零填充。部分以零填充。3、利用矩阵下标,、利用矩阵下标,MATLAB还提供了子矩阵功能。同样是上面的还提供了子矩阵功能。同样是上面的a(n,m),如果如果n和和m是向量,而不是标量,则将获得指定矩阵的子块是向量,而不是标量,则将获得指定矩阵的子块.4、矩阵的子块还可以被赋值。如果在取子块时,、矩阵的子块还可以被赋值。如果在取子块时,n或或m是是“:”,则返回指定,则返回指定的所有行或列。的所有行或列。5、矩阵的序号编址:按列计数。、矩阵的序号编址:按列计数。矩阵大小1、在、在MATLAB命令行中,使用命令行中,使用whos命令可以查看到所有变量的大小。命令可以查看到所有变量的大小。2、为了获得矩阵或者向量的大小,、为了获得矩阵或者向量的大小,MATLAB还提供了两个有用的函数还提供了两个有用的函数size和和length。(1)size调用:调用:m,n=size(a,x)。A、不用参量、不用参量x时:当只有一个输出变量时,时:当只有一个输出变量时,size返回一个行向量,第一个数为返回一个行向量,第一个数为行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个返回数为列数。返回数为列数。B、当使用、当使用x时,只能有一个输出变量:时,只能有一个输出变量:x=1返回行数,返回行数,x=2返回列数,这时只返回列数,这时只有一个返回值。有一个返回值。(2)length返回行数或者列数的最大值,即返回行数或者列数的最大值,即length(a)=max(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=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 z把把x y z这这3个变量保存在文件个变量保存在文件temp.mat中。中。3、下次加载、下次加载MATLAB时,可以利用时,可以利用load命令将保存在文件中的命令将保存在文件中的变量恢复到工作空间中,其格式为:变量恢复到工作空间中,其格式为:(1)load将保存在将保存在matlab.mat中的变量装入到中的变量装入到matlab空间中。空间中。(2)load 文件名文件名 变量名变量名从指定文件中将指定的变量装入到从指定文件中将指定的变量装入到matlab的工作空间中。的工作空间中。如:如:load temp x从文件从文件temp.mat 中只将变量中只将变量x装入到装入到 matlab的工作空间中。的工作空间中。