《第2章 矩阵与数组优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2章 矩阵与数组优秀PPT.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 矩阵与数组现在学习的是第1页,共43页1 1 引言引言1.1 变量与常量变量与常量 常常(变变)量:程序运行的过程中不需要量:程序运行的过程中不需要(可能需要可能需要)改变数改变数值的量。值的量。note:c语言中语言中const作为标记;作为标记;而而M语言中不存在常语言中不存在常量的定义量的定义,MATLAB中提供了一些常用的常数作为中提供了一些常用的常数作为常量,例如常量,例如pi,i,j等。等。现在学习的是第2页,共43页1 引言1.2 标量标量-向量向量-矩阵矩阵 “一般量一般量”:单个数值;比如:单个数值;比如 3,4,pi等等;等等;向量向量:行、列向量;比如一段时间序列
2、(温度);(:行、列向量;比如一段时间序列(温度);(一一维数组维数组)矩阵矩阵:线性代数中的矩阵;(:线性代数中的矩阵;(二维数组二维数组);比如座位号);比如座位号码;码;(多维数组多维数组);note:向量是矩阵的特例(:向量是矩阵的特例(1N、N1的矩阵)。的矩阵)。现在学习的是第3页,共43页2 矩阵的创建2.1 向量的创建(向量的创建(P39)1)直接逐个输入)直接逐个输入 空格、逗号;分号空格、逗号;分号 2)利用运算符)利用运算符“:”3)线性等分功能函数)线性等分功能函数linspace 4)对数等分功能函数)对数等分功能函数logspace 列向量列向量的创建:的创建:1)
3、注意)注意“;”2)转置)转置现在学习的是第4页,共43页2 矩阵的创建2.2 矩阵的创建(矩阵的创建(P42)1)直接输入小矩阵)直接输入小矩阵 2)创建)创建M文件输入大矩阵文件输入大矩阵 3)数组编辑器)数组编辑器 4)特定矩阵的生成:)特定矩阵的生成:0矩阵,矩阵,1矩阵,单位矩阵,矩阵,单位矩阵,随机随机矩阵矩阵 例子:例子:a=rand(3,3);openvar a;现在学习的是第5页,共43页2 2 矩阵的创建矩阵的创建现在学习的是第6页,共43页3 矩阵的访问(索引)3.1 向量元素的访问向量元素的访问 访问向量的元素只要使用相应元素的访问向量的元素只要使用相应元素的索引索引即
4、可。即可。索引:坐标索引:坐标,以课堂的位置为例。,以课堂的位置为例。例子:例子:A=1 2 3 4 5 6 7 8 9 0%访问向量的第三个元素访问向量的第三个元素 A(3)Note:c语言中采用的是语言中采用的是“”,matlab中是中是”()”.现在学习的是第7页,共43页%访问向量的第一、三、七个元素访问向量的第一、三、七个元素 A(1 3 7)ans=1 3 7%访问向量的第一、三、五个元素访问向量的第一、三、五个元素 A(1:2:5)或或 A(1:2:5)ans=1 3 5%访问向量的最后四个元素访问向量的最后四个元素 A(end-3:end)ans=7 8 9 0%重复访问向量中
5、的元素重复访问向量中的元素 A(1:5,5:-1:1)ans=1 2 3 4 5 5 4 3 2 1 现在学习的是第8页,共43页 note:*关关键键字字end在在访访问问向向量量元元素素时时,表表示示向向量量中中最最后后一一个个元元素素的序号。的序号。(方便:方便:无需知道向量的实际长度,即可操作无需知道向量的实际长度,即可操作)。*访问向量元素时,序号的数值必须介于数值访问向量元素时,序号的数值必须介于数值1end之间。之间。现在学习的是第9页,共43页例子例子 对向量的元素进行对向量的元素进行赋值赋值。%对向量的第三个元素赋值对向量的第三个元素赋值 A(3)=-3A=1 2 -3 4
6、5 6 7 8 9 0%对向量中不存在的数据赋值对向量中不存在的数据赋值 A(15)=-15A=Columns 1 through 10 1 2 -3 4 5 6 7 8 9 0 Columns 11 through 15 0 0 0 0 -15 现在学习的是第10页,共43页 note:在例子在例子2-9中,对向量的第中,对向量的第15个元素赋值,在赋值之前向个元素赋值,在赋值之前向量的第量的第1115个元素不存在,但是在赋值之后,将自动创建这些元个元素不存在,但是在赋值之后,将自动创建这些元素,并且为没有明确赋值的元素赋默认值素,并且为没有明确赋值的元素赋默认值0,这就是,这就是MATLA
7、B的的数据自动扩充和初始化机制数据自动扩充和初始化机制。(这点在这点在c语言中无法实现的语言中无法实现的)。现在学习的是第11页,共43页3.2 矩阵元素的访问矩阵元素的访问 矩阵元素的索引矩阵元素的索引:1)全下标全下标形式;形式;2)单下标单下标形式;形式;例例2-10:MATLAB工作空间中具有一个工作空间中具有一个55的矩阵,该矩阵是五阶的矩阵,该矩阵是五阶的幻方,通过命令行获取矩阵的第二行、第四列的元素,于的幻方,通过命令行获取矩阵的第二行、第四列的元素,于是在是在MATLAB命令行窗口中键入下面的指令:命令行窗口中键入下面的指令:现在学习的是第12页,共43页%创建矩阵创建矩阵 A
8、=magic(5)A=17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9%使用全下标的形式访问元素使用全下标的形式访问元素 A(2,4)ans=14%使用单下标的形式访问元素使用单下标的形式访问元素 A(17)注:是注:是17不是不是9!ans=14 现在学习的是第13页,共43页 note:*使使用用了了MATLAB函函数数magic创创建建幻幻方方。所所谓谓幻幻方方,就就是是n阶的方阵,该方阵的行元素和列元素的和都相等。阶的方阵,该方阵的行元素和列元素的和都相等。*全全下下标标的的形形式式:简简单单、直直接接,
9、同同线线性性代代数数的的矩矩阵阵元元素素的的概概念一一对应。念一一对应。*单单下下标标:是是矩矩阵阵元元素素在在内内存存中中存存储储的的序序列列号号,一一般般地地,同一个矩阵的元素存储在连续的内存单元中。同一个矩阵的元素存储在连续的内存单元中。*单下标与全下标之间的转换关系:单下标与全下标之间的转换关系:矩阵的第矩阵的第i行第行第j列的元列的元素全下标表示为单下标素全下标表示为单下标l=(j-1)m+i。现在学习的是第14页,共43页 note:MATLAB的的矩矩阵阵元元素素的的排排列列以以列列元元素素优优先先,C语语言言的的二二维维数组元素排列以数组元素排列以行元素行元素优先。优先。全全下
10、下标标和和单单下下标标之之间间的的转转换换:MATLAB提提供供了了两两个个函函数数分分别别完成两者之间的相互转化:完成两者之间的相互转化:*sub2ind:根据全下标计算单下标。:根据全下标计算单下标。*ind2sub:根据单下标计算全下标。:根据单下标计算全下标。现在学习的是第15页,共43页表表2-1 使用索引访问矩阵元素的方法使用索引访问矩阵元素的方法 现在学习的是第16页,共43页例子例子2-11 用不同的方法访问矩阵的元素用不同的方法访问矩阵的元素。在在MATLAB命令行中键入下面的指令:命令行中键入下面的指令:%创建矩阵创建矩阵 A=1:25;A=reshape(A,5,5)A=
11、1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 现在学习的是第17页,共43页%访问矩阵的第三行第一列元素访问矩阵的第三行第一列元素 A(3,1)或或A(3)ans=3%访问矩阵第三行的所有元素访问矩阵第三行的所有元素 A(3,:)ans=3 8 13 18 23%访问矩阵第四列的所有元素访问矩阵第四列的所有元素 A(:,4)ans=16 17 18 19 20 现在学习的是第18页,共43页%访问矩阵的最后一行元素访问矩阵的最后一行元素 A(end,:)ans=5 10 15 20 25%获取矩阵的子矩阵获取
12、矩阵的子矩阵 I=1 3 5;J=2 4;A(I,J)ans=6 16 8 18 10 20 现在学习的是第19页,共43页4 矩阵的基本运算矩阵的基本运算 4.1 矩阵生成函数矩阵生成函数 表表2-2 MATLAB的矩阵生成函数的矩阵生成函数 现在学习的是第20页,共43页例子例子2-12 矩阵生成函数的示例矩阵生成函数的示例。在在MATLAB命令行中键入下面的指令:命令行中键入下面的指令:%创建三阶帕斯卡矩阵创建三阶帕斯卡矩阵 A=pascal(3)A=1 1 1 1 2 3 1 3 6%从矩阵从矩阵A生成生成下三角矩阵下三角矩阵 tril(A)ans=1 0 0 1 2 0 1 3 6
13、现在学习的是第21页,共43页%获取矩阵获取矩阵A的的对角线元素对角线元素 diag(A)ans=1 2 6%利用向量利用向量生成对角矩阵生成对角矩阵 diag(ans)ans=1 0 0 0 2 0 0 0 6 现在学习的是第22页,共43页4.2 基本矩阵运算基本矩阵运算表表2-3 矩阵的基本运算矩阵的基本运算现在学习的是第23页,共43页note:在在MATLAB中中,获获取取矩矩阵阵(线线性性代代数数)的的运运算算函函数数列列表请在表请在MATLAB命令行窗口中键入如下命令:命令行窗口中键入如下命令:help matfun在在MATLAB命令行窗口中将显示相应的函数列表:命令行窗口中将
14、显示相应的函数列表:Matrix functions-numerical linear algebra.Matrix analysis.norm -Matrix or vector norm.normest -Estimate the matrix 2-norm.现在学习的是第24页,共43页例子例子2-13 矩阵的基本运算示例矩阵的基本运算示例求解方程组求解方程组%创建线性方程组的系数矩阵和向量创建线性方程组的系数矩阵和向量 A=-1 1 2;3-1 1;-1 3 4;b=2;6;4;%求解方程,使用求解方程,使用矩阵求逆矩阵求逆的方法的方法 x=inv(A)*b 现在学习的是第25页,共4
15、3页%求解方程,使用求解方程,使用矩阵左除运算矩阵左除运算 x=Abx=1.0000 -1.0000 2.0000 note(扩展)(扩展):超定方程组,最小二乘法:超定方程组,最小二乘法现在学习的是第26页,共43页4.3 基本数组运算(针对矩阵元素的运算)基本数组运算(针对矩阵元素的运算)1)针对矩阵针对矩阵的运算的运算 2)针对矩阵元素针对矩阵元素的运算的运算 例例子子:矩矩阵阵A,B,想想得得到到C:C中中元元素素是是A、B中中位位置置对对应应元素的乘积。元素的乘积。方法方法1:for 循环处理;循环处理;方法方法2:.*(点乘)运算(点乘)运算。现在学习的是第27页,共43页 *)数
16、组乘法(点乘)数组乘法(点乘)例子例子2-16 数组乘法示例。数组乘法示例。在在MATLAB命令行中,键入下面的指令:命令行中,键入下面的指令:%本例子中使用的矩阵本例子中使用的矩阵 AA=0+1.0000i 0+3.0000i 0+5.0000i 0+2.0000i 0+4.0000i 0+6.0000i 现在学习的是第28页,共43页%矩阵乘法矩阵乘法 A*5ans=0+5.0000i 0+15.0000i 0+25.0000i 0+10.0000i 0+20.0000i 0+30.0000i%数组乘法数组乘法 A.*5ans=0+5.0000i 0+15.0000i 0+25.0000i
17、 0+10.0000i 0+20.0000i 0+30.0000i 现在学习的是第29页,共43页%矩阵乘法矩阵乘法 A*Aans=35 44 44 56%数组乘法数组乘法 A.*Aans=-1 -9 -25 -4 -16 -36 现在学习的是第30页,共43页4.4 基本数学函数基本数学函数 在在MATLAB中有部分函数可以用来进行基本的数学中有部分函数可以用来进行基本的数学运算,主要有如下类别:运算,主要有如下类别:1)三角函数)三角函数 2)指数运算函数)指数运算函数 3)复数运算函数)复数运算函数 4)圆整和求余函数圆整和求余函数现在学习的是第31页,共43页表表2-4 三三 角角 函
18、函 数数 现在学习的是第32页,共43页表表2-5 指数运算函数指数运算函数 现在学习的是第33页,共43页 note:以以real开开头头的的函函数数仅仅能能处处理理实实数数,如如输输入入的的参参数数为为复复数数,则则MATLAB会报错。会报错。函数函数nextpow2是用来计算仅仅比输入参数大的第一个是用来计算仅仅比输入参数大的第一个2的幂,的幂,例如输入参数为例如输入参数为N,则函数的计算结果整数,则函数的计算结果整数P需要满足的条件需要满足的条件为为2Pabs(N)2P-1。现在学习的是第34页,共43页表表2-6 复复 数数 运运 算算 现在学习的是第35页,共43页表表2-7 圆整
19、和求余函数圆整和求余函数 现在学习的是第36页,共43页例子例子2-17 MATLAB的圆整和求余函数。的圆整和求余函数。在在MATLAB的命令行中,键入下面的指令:的命令行中,键入下面的指令:fix(-1.9)ans=-1 floor(-1.9)ans=-2 round(-1.9)ans=-2 ceil(-1.9)ans=-1 现在学习的是第37页,共43页2.5.5 矩阵矩阵(数组数组)操作函数操作函数 在前面的小节中主要介绍了进行数学运算的在前面的小节中主要介绍了进行数学运算的MATLAB函数,函数,在在MATLAB中还存在一类函数用来获取矩阵或者数组的信息,中还存在一类函数用来获取矩阵
20、或者数组的信息,以及对数组进行操作,在表以及对数组进行操作,在表2-8中列举了较常用的函数。完整中列举了较常用的函数。完整的函数列表内容可以在的函数列表内容可以在MATLAB命令行中键入命令行中键入help elmat指指令来察看。令来察看。现在学习的是第38页,共43页表表2-8 用于矩阵用于矩阵(数组数组)操作的常用函数操作的常用函数 现在学习的是第39页,共43页 例子例子2-18 reshape函数的使用示例函数的使用示例。在在前前面面的的例例子子2-11中中曾曾经经使使用用过过reshape函函数数,这这里里将将详详细细讨讨论论该该函函数数的的使使用用方方法法,在在MATLAB命命令
21、令行行中中,键键入入下下面面的的指令:指令:A=1:8A=1 2 3 4 5 6 7 8 B=reshape(A,2,4)现在学习的是第40页,共43页B=1 3 5 7 2 4 6 8 C=reshape(B,3,3)?Error using=reshapeTo RESHAPE the number of elements must not change.现在学习的是第41页,共43页例子例子2-19 对称交换函数的使用示例。对称交换函数的使用示例。在在MATLAB命令行中,键入下面的指令:命令行中,键入下面的指令:A=reshape(1:9,3,3)A=1 4 7 2 5 8 3 6 9 fliplr(A)(左右对称交换)(左右对称交换)ans=7 4 1 8 5 2 9 6 3 现在学习的是第42页,共43页小小 结结 矩阵的运算是矩阵的运算是MATLAB运算的基础。本章讨论了运算的基础。本章讨论了1)向量、矩阵、索引、向量、矩阵、索引、(多维数组)的概念,(多维数组)的概念,2)矩阵的)矩阵的创建创建、访问访问以及若干基本的以及若干基本的运算运算;3)稀疏矩阵与多维数组(课后学习)稀疏矩阵与多维数组(课后学习)现在学习的是第43页,共43页