MALAT矩阵及其运算.ppt
《MALAT矩阵及其运算.ppt》由会员分享,可在线阅读,更多相关《MALAT矩阵及其运算.ppt(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 MATLAB矩阵及其运算矩阵及其运算2.1 变量和数据操作变量和数据操作2.2 MATLAB矩阵矩阵2.3 MATLAB运算运算2.4 矩阵分析矩阵分析2.5 矩阵的超越函数矩阵的超越函数2.6 稀疏矩阵稀疏矩阵2.1 变量和数据操作变量和数据操作2.1.1 变量与赋值变量与赋值1变量命名变量命名在在MATLAB 6.5中,变量名是以字母开头,中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最后接字母、数字或下划线的字符序列,最多多63个字符。在个字符。在MATLAB中,变量名区分中,变量名区分字母的大小写。字母的大小写。2赋值语句赋值语句(1)变量变量=表达式表达式 (
2、2)表达式表达式其中表达式是用运算符将有关运算量连接起来的其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。式子,其结果是一个矩阵。a=2a=2例例2-1 计算表达式的值,并显示计算结果。计算表达式的值,并显示计算结果。在在MATLAB命令窗口输入命令:命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中其中pi和和i都是都是MATLAB预先定义的变量,分预先定义的变量,分别代表代表圆周率别代表代表圆周率和虚数单位。和虚数单位。x=1+2i;y=3-sqrt(17);z=(cos(abs(
3、x+y)-sin(78*pi/180)/(x+abs(y)z=-0.3488+0.3286i 2.1.2 预定义变量预定义变量在在MATLAB工作空间中,还驻留几个由系统工作空间中,还驻留几个由系统本身定义的变量。例如,用本身定义的变量。例如,用pi表示圆周率表示圆周率的近似值,用的近似值,用i,j表示虚数单位。表示虚数单位。预定义变量有特定的含义,在使用时,应预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。尽量避免对这些变量重新赋值。2.1.3 内存变量的管理内存变量的管理1内存变量的删除与修改内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量工作空间窗口专门用于内
4、存变量的管理。在工作空间窗口中可以显示所有的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再内存变量的属性。当选中某些变量后,再单击单击Delete按钮,就能删除这些变量。当选按钮,就能删除这些变量。当选中某些变量后,再单击中某些变量后,再单击Open按钮,将进入按钮,将进入变量编辑器。通过变量编辑器可以直接观变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的察变量中的具体元素,也可修改变量中的具体元素。具体元素。clear命令用于删除命令用于删除MATLAB工作空间中的变工作空间中的变量。量。who和和whos这两个命令用于显示在这两个命令用于显示
5、在MATLAB工作空间中已经驻留的变量名清工作空间中已经驻留的变量名清单。单。who命令只显示出驻留变量的名称,命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。大小、所占字节数及数据类型等信息。x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)z=-0.3488+0.3286i whos Name Size Bytes Class A 2x5 80 double array a 1x1 8 double array ans 3x1 24 d
6、ouble array x 1x1 16 double array(complex)y 1x1 8 double array z 1x1 16 double array(complex)Grand total is 17 elements using 152 byteswhoYour variables are:A a ans x y z 2内存变量文件内存变量文件利用利用MAT文件可以把当前文件可以把当前MATLAB工作空工作空间中的一些有用变量长久地保留下来,扩间中的一些有用变量长久地保留下来,扩展名是展名是.mat。MAT文件的生成和装入由文件的生成和装入由save和和load命令来完成
7、。常用格式为:命令来完成。常用格式为:save 文件名文件名 变量名表变量名表 -append-asciiload 文件名文件名 变量名表变量名表 -ascii其中,文件名可以带路径,但不需带扩展名其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对,命令隐含一定对.mat文件进行操作。文件进行操作。变量名表中的变量个数不限,只要内存或变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。当变量名表省略时,保存或装入全部变量。2.1.4 MATLAB常用数学函数常用数学函数MATLAB提供
8、了许多数学函数,函数的自提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。果是一个与自变量同维数的矩阵。函数使用说明:函数使用说明:(1)三角函数以弧度为单位计算。三角函数以弧度为单位计算。(2)abs函数可以求实数的绝对值、复数的模、函数可以求实数的绝对值、复数的模、字符串的字符串的ASCII码值。码值。(3)用于取整的函数有用于取整的函数有fix、floor、ceil、round,要注意它们的区别。,要注意它们的区别。(4)rem与与mod
9、函数的区别。函数的区别。rem(x,y)和和mod(x,y)要求要求x,y必须为相同大小的实矩阵必须为相同大小的实矩阵或为标量。或为标量。2.1.5 数据的输出格式数据的输出格式 MATLAB用十进制数表示一个常数,具用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表体可采用日常记数法和科学记数法两种表示方法。示方法。在一般情况下,在一般情况下,MATLAB内部每一个数内部每一个数据元素都是用双精度数来表示和存储的。据元素都是用双精度数来表示和存储的。数据输出时用户可以用数据输出时用户可以用format命令设置或改命令设置或改变数据输出格式。变数据输出格式。format命令的格式为
10、:命令的格式为:format 格式符格式符其中格式符决定数据的输出格式其中格式符决定数据的输出格式基本数论运算下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数例:对下面的数据进行取整运算 -0.2765,0.5772,1.4597,2.1091,1.191,-1.6187 A=-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187;floor(A)%向-inf 方向取整ans=-1 0 1 2 1 -2 ceil(A)%向+inf 方向取整ans=0 1 2 3 2 -1 round(A)%取最近
11、的整数ans=0 1 1 2 1 -2 fix(A)%向 0 的方向取整ans=0 0 1 2 1 -1 format rat a=sin(pi/6)a=1/2 abs(1+i)ans=1393/985 sym(abs(1+i)ans=sqrt(2)2.2 MATLAB矩阵矩阵2.2.1 矩阵的建立矩阵的建立1直接输入法直接输入法 最简单的建立矩阵的方法是从键盘直接最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格输入各元素,同一行
12、的各元素之间用空格或逗号分隔,不同行的元素之间用分号分或逗号分隔,不同行的元素之间用分号分隔。隔。例:A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A=1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 02利用利用M文件建立矩阵文件建立矩阵 对于比较大且比较复杂的矩阵,可以为对于比较大且比较复杂的矩阵,可以为它专门建立一个它专门建立一个M文件。下面通过一个简单文件。下面通过一个简单例子来说明如何利用例子来说明如何利用M文件创建矩阵。文件创建矩阵。例例2-2 利用利用M文件建立文件建立MYMAT矩阵。矩阵。(1)启动有关编辑程序或启动有关编辑程序或MATLAB文本编
13、辑文本编辑器,并输入待建矩阵:器,并输入待建矩阵:(2)把输入的内容以纯文本方式存盘把输入的内容以纯文本方式存盘(设文设文件名为件名为mymatrix.m)。(3)在在MATLAB命令窗口中输入命令窗口中输入mymatrix,即运行该,即运行该M文件,就会自动建立一个名为文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。的矩阵,可供以后使用。3利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3其中其中e1为初始值,为初始值,e2为步长,为步长,e3为终止值。为终止值。在在MATLAB
14、中,还可以用中,还可以用linspace函数产生行向函数产生行向量。其调用格式为:量。其调用格式为:linspace(a,b,n)其中其中a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元素总数。是元素总数。显然,显然,linspace(a,b,n)与与a:(b-a)/(n-1):b等价。等价。4建立大矩阵建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。大矩阵可由方括号中的小矩阵或向量建立起来。v1=0:0.2:pi v1=0:0.2:piv1=v1=Columns 1 through 9 Columns 1 through 9 0 0.2000 0.400
15、0 0.6000 0.8000 1.0000 1.2000 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.60001.4000 1.6000 Columns 10 through 16 Columns 10 through 16 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000 linspace(0,1,10)ans=Columns 1 through 8 0 1/9 2/9 1/3 4/9
16、 5/9 2/3 7/9 Columns 9 through 10 8/9 1 d=linspace(0,1,5);d1=0:4;D=d;d1D=0 1/4 1/2 3/4 1 0 1 2 3 4 D1=d,d1D1=Columns 1 through 8 0 1/4 1/2 3/4 1 0 1 2 Columns 9 through 10 3 4 2.2.2 矩阵的拆分矩阵的拆分1矩阵元素矩阵元素 通过下标引用矩阵的元素,例如通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的
17、排列顺序。在是相应元素在内存中的排列顺序。在MATLAB中,矩阵中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如元素按列存储,先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6;A(3)ans=2显然,序号显然,序号(Index)与下标与下标(Subscript)是一一对应的,以是一一对应的,以mn矩阵矩阵A为例,矩阵元素为例,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。2矩阵拆分矩阵拆分 (1)利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩阵第矩阵第i行的全部元素;行
18、的全部元素;A(i,j)表示取表示取A矩阵矩阵第第i行、第行、第j列的元素。列的元素。A(i:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元行的全部元素;素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部列的全部元素,元素,A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,行内,并在第并在第kk+m列中的所有元素。列中的所有元素。此外,还可利用一般向量和此外,还可利用一般向量和end运算符来表示矩阵运算符来表示矩阵下标,从而获得子矩阵。下标,从而获得子矩阵。end表示某一维的末尾元表示某一维的末尾元素下标。素下标。基本语句格式 B=A(v1,v2)v
19、1、v2分别表示提取行(列)号构成的向量。例:A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A=1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 B1=A(1:2:end,:)提取全部奇数行、所有列。B1=1 2 3 4 5 6 7 8子矩阵提取 B2=A(3,2,1,2,3,4)提取3,2,1行、2,3,4列构成子矩阵。A=B2=1 2 3 4 6 7 8 3 4 5 6 4 5 6 5 6 7 8 2 3 4 7 8 9 0 B3=A(:,end:-1:1)将A矩阵左右翻转,即最后一列排在最前面。B3=4 3 2 1 6 5 4 3 8 7 6 5 0 9
20、 8 7 (2)利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素 在在MATLAB中,定义中,定义为空矩阵。给变为空矩阵。给变量量X赋空矩阵的语句为赋空矩阵的语句为X=。注意,。注意,X=与与clear X不同,不同,clear是将是将X从工作空间中删除,从工作空间中删除,而空矩阵则存在于工作空间中,只是维数而空矩阵则存在于工作空间中,只是维数为为0。2.2.3 特殊矩阵特殊矩阵1通用的特殊矩阵通用的特殊矩阵常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros:产生全:产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全:产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩
21、阵。:产生单位矩阵。rand:产生:产生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。randn:产生均值为:产生均值为0,方差为,方差为1的标准正态的标准正态分布随机矩阵。分布随机矩阵。例例2-3 分别建立分别建立33、32和与矩阵和与矩阵A同样大小的零同样大小的零矩阵。矩阵。(1)建立一个建立一个33零矩阵。零矩阵。zeros(3)(2)建立一个建立一个32零矩阵。零矩阵。zeros(3,2)(3)设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立建立一个与矩阵一个与矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5 6;%产生一个产生一个23阶矩阵阶矩阵
22、Azeros(size(A)%产生一个与矩阵产生一个与矩阵A同样大小的同样大小的零矩阵零矩阵例例2-4 建立随机矩阵:建立随机矩阵:(1)在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2)均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随机矩阵。阶正态分布随机矩阵。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩阵,它在矩阵总元素保持不变的前提下,将矩阵总元素保持不变的前提下,将矩阵A重新排成重新排成mn的二维矩阵。的二维矩
23、阵。x=20+(50-20)*rand(5)x=26.0830 20.4582 32.5595 45.1436 35.0844 25.9617 42.4036 45.3866 20.5892 41.2841 38.1138 33.3529 35.7546 40.4383 32.8668 28.1656 47.9544 26.0794 31.3844 29.1385 25.9644 33.9798 40.1641 44.9539 25.6896 y=0.6+sqrt(0.1)*randn(5)y=0.4632 0.9766 0.5410 0.6360 0.6931 0.0733 0.9760 0
24、.8295 0.9373 0.1775 0.6396 0.5881 0.4140 0.6187 0.8259 0.6910 0.7035 1.2904 0.5698 1.1134 0.2375 0.6552 0.5569 0.3368 0.38122用于专门学科的特殊矩阵用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个整个整数组成。数组成。MATLAB提供了求魔方矩阵的函提供了求魔方矩阵的函数
25、数magic(n),其功能是生成一个,其功能是生成一个n阶魔方阵。阶魔方阵。M=magic(n)returns an n-by-n matrix constructed from the integers 1 through n2 with equal row and column sums.The order n must be a scalar greater than or equal to 3.M=magic(3)M=8 1 6 3 5 7 4 9 2(2)范得蒙矩阵范得蒙矩阵范得蒙范得蒙(Vandermonde)矩阵最后一列全为矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MALAT 矩阵 及其 运算
限制150内