矩阵及基本运算_第1页
矩阵及基本运算_第2页
矩阵及基本运算_第3页
矩阵及基本运算_第4页
矩阵及基本运算_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、矩阵及基本运算第1页,共37页,2022年,5月20日,9点19分,星期五矩阵的建立:2直接输入以左方括号开始,右方括号结尾同一行中的元素用逗号或空格隔开行与行之间用分号或回车隔开 a=1,2,3;4,5,6;7,8,9a = 1 2 3 4 5 6 7 8 9 a=1 2 3;4 5 6;7 8 9 a=1 2 3 4 5 6 7 8 9这种方法适用于矩阵元素个数较少的情况第2页,共37页,2022年,5月20日,9点19分,星期五3用矩阵编辑器输入在命令窗口创建变量双击它打开矩阵编辑器在编辑器中输入或修改,完毕后关闭即可第3页,共37页,2022年,5月20日,9点19分,星期五4用矩阵函

2、数创建矩阵zeros(m,n): mn阶零矩阵eye(m,n): n阶单位矩阵ones(m,n): mn阶元素全为1的矩阵rand(m,n): mn阶均匀随机矩阵,取值0到1randn(m,n): mn阶正态随机矩阵,取值0到1magic(n): n阶魔方矩阵(矩阵每行、每列及两对角线上的元素和相等)hilb(n): n阶Hilbert矩阵,即矩阵元素为1/(i+j-1)A=ones(2,3)A = 1 1 1 1 1 1 eye(3)ans = 1 0 0 0 1 0 0 0 1第4页,共37页,2022年,5月20日,9点19分,星期五5A=diag(v,k)生成主对角线方向上的第k(整数

3、)层元素为向量v的矩阵. 规定:k=0时,表示矩阵的主对角线k0时,表示主对角线的平行位置上方的第k层K v=1 2 3 A=diag(v,0) B=diag(v,1)第6页,共37页,2022年,5月20日,9点19分,星期五例 随机生成数值在10到30之间的含5个元素的行向量7 10+(30-10)*rand(1,5)ans = 25.8441 29.1898 23.1148 10.7142 26.9826第7页,共37页,2022年,5月20日,9点19分,星期五例 生成三对角矩阵8A = 1 2 0 0 0 0 1 1 2 0 0 0 0 2 1 2 0 0 0 0 3 1 2 0 0

4、 0 0 1 1 2 0 0 0 0 2 1 a1=ones(1,6) a2=2*ones(1,5) a3=1 2 3 1 2 A=diag(a1,0)+diag(a2,1)+diag(a3,-1)第8页,共37页,2022年,5月20日,9点19分,星期五9通过文件生成有时我们需要处理一些没有规律的数据,或数据量很大时,如在命令窗口输入,清除后再次使用需要重新输入,这就增加工作量. 解决方案:直接把数据作为矩阵输入到M文件(Matlab的程序代码文件)中作为变量保存到MAT文件中 Save Filename var1 var2 var3 Load Filename第9页,共37页,2022年

5、,5月20日,9点19分,星期五数组的生成:10使用from:step:to生成数组 当step省略时,表示步长step=1当step为负数时,可以创建降序的数组除前面的矩阵输入外,还有 a=1:0.5:2a = 1.0000 1.5000 2.0000 b=1:3b = 1 2 3 c=3:-1:1c = 3 2 1第10页,共37页,2022年,5月20日,9点19分,星期五11linspace(a,b,n) 生成从a到b之间线性分布的n个元素的数组. 如果n省略,则默认为100.logspace(a,b,n) 生成从10a到10b之间按对数等分的n个元素的数组. 如果n省略,则默认为50

6、. a=linspace(1,9,5)a = 1 3 5 7 9 b=logspace(1,5,3)b = 10 1000 100000logspace(a,b,n)=10.linspace(a,b,n)第11页,共37页,2022年,5月20日,9点19分,星期五复数矩阵的输入12 A=1+2i 3+4i; 5+6i 7+8i A=1 3;5 7+i*2 4;6 8设A = 1 + 2i 3 + 4i 5 + 6i 7 + 8i第12页,共37页,2022年,5月20日,9点19分,星期五矩阵元素操作MATLAB利用下标来访问矩阵中的元素,下标可以是向量.13设 A = 1 2 3 4 5

7、6 7 8 9 b=A(2,3)b = 6 c=A(1 2,2 3)c = 2 3 5 6第13页,共37页,2022年,5月20日,9点19分,星期五如果在某个下标位置只有一个:号,则表示取对应的所有列或行. 用end表示某一维数中的最大值.14设 A = 1 2 3 4 5 6 7 8 9 b=A(2,:)b = 4 5 6 c=A(:,2:3)c = 2 3 5 6 8 9 d=A(1:2,end)d = 3 6第14页,共37页,2022年,5月20日,9点19分,星期五用单下标来表示 即将矩阵的所有列按先左后右的次序接成“一维长列”,然后再对元素位置进行编号15设 A = 1 2 3

8、 4 5 6 7 8 9 A(4)ans = 2 A(2:5)ans = 4 7 2 5第15页,共37页,2022年,5月20日,9点19分,星期五矩阵的合并16A = 1 2 3 4 5 6B = 7 8 9 10C = 11 12 13 A,Bans = 1 2 3 7 8 4 5 6 9 10 A;Cans = 1 2 3 4 5 6 11 12 13第16页,共37页,2022年,5月20日,9点19分,星期五通过空矩阵“ ”对矩阵元素进行删除17设 A = 1 2 3 4 5 6 7 8 9 A(2,:)=A = 1 2 3 7 8 9 A=A = isempty(A)ans =

9、1第17页,共37页,2022年,5月20日,9点19分,星期五矩阵的运算基本运算加(+):A+B, A+k (每个元素都加k)减(-):A-B, A-k乘(*):A*B左除():AB, 即A-1B, A必须为方阵右除(/): A/B, 即AB-1, B必须为方阵乘幂(): An, A必须为方阵转置(): transpose(A)或 A点运算(.): 其加、减、乘、除和乘方都是对两个相同维数的矩阵进行对应元素的运算.18第18页,共37页,2022年,5月20日,9点19分,星期五19A = 1 2 3 3 2 1 1 2 5B = -2 9 -15 6 15 -21 -6 11 -2例 已知

10、求出AX=B和XA=B的解 ABans = 2.0000 4.0000 3.5000 1.0000 1.0000 -19.0000 -2.0000 1.0000 6.5000 inv(A)*Bans = 2.0000 4.0000 3.5000 1.0000 1.0000 -19.0000 -2.0000 1.0000 6.5000 B/Aans = 25.2500 -3.2500 -17.5000 30.7500 -0.7500 -22.5000 26.2500 -5.7500 -15.0000 B*inv(A)ans = 25.2500 -3.2500 -17.5000 30.7500 -

11、0.7500 -22.5000 26.2500 -5.7500 -15.0000第19页,共37页,2022年,5月20日,9点19分,星期五20A = 1 2 3 4 5 6B = 7 8 -9 -1 -3 -2例 已知 A.*Bans = 7 16 -27 -4 -15 -12 A./Bans = 0.1429 0.2500 -0.3333 -4.0000 -1.6667 -3.0000 A.Bans = 7.0000 4.0000 -3.0000 -0.2500 -0.6000 -0.3333 A.3ans = 1 8 27 64 125 216第20页,共37页,2022年,5月20日

12、,9点19分,星期五关系运算关系运算符:(小于)、 (大于)、 =(大于等于)、=(等于)、=(不等于)关于运算在对应元素之间进行,结果是一个二值矩阵,其中0表示“假”,1表示“真”.21相关函数 I = find(A) 返回矩阵A的非零元素的线性指标I J= find(A) 返回矩阵A的非零元素的行、列指标,分别存于I和JA = 1 0 0 4 find(A)ans = 1 4 I J=find(A)I = 1 2J = 1 2第21页,共37页,2022年,5月20日,9点19分,星期五22 A=1 4 3 2;B=5 4 1 3; AB %比较A与B矩阵的元素大小,输出逻辑数值ans =

13、 0 0 1 0 x=find(A=B) %找出A与B中对应元素相等的下标x = 2 A(find(A=B) %找出A和B中对应元素相等的元素ans = 4例 第22页,共37页,2022年,5月20日,9点19分,星期五23例 找出以下矩阵中绝对值大于3的所有元素 A=zeros(2,5); A(:)=-4:5A = -4 -2 0 2 4 -3 -1 1 3 5 L=abs(A)3L = 1 0 0 0 1 0 0 0 0 1A = -4 -2 0 2 4 -3 -1 1 3 5 XL=A(find(L)XL = -4 4 5第23页,共37页,2022年,5月20日,9点19分,星期五逻

14、辑运算逻辑运算符:&(与)、 |(或)、 (非)、 xor(异或)、&(先决与)、|(先决或)24xyx&yxIyxxor(x,y)000010010111100101111100&: 当该运算符的左边为1时,才执行右边的运算|: 当该运算符的左边为0时,才执行右边的运算第24页,共37页,2022年,5月20日,9点19分,星期五25A = 1 2 3 4B = 4 3 2 1例 设 (AB)&(A=B)ans = 0 0 0 0 (AB)&(A1)ans = 0 0 1 1 (AB)|(A1)ans = 0 1 1 1 xor(AB, A1)ans = 0 1 0 0第25页,共37页,2

15、022年,5月20日,9点19分,星期五其它一些常用矩阵函数size(A): 返回矩阵的行数和列数size(A,1): 返回行数size(A,2): 返回列数length(a): 返回向量a的长度reshape(A,m,n): 重排矩阵A为m行n列矩阵,A必须为m*n个元素26A = 1 2 3 4 5 6a = 1 2 3 4 5 size(A)ans = 2 3 size(A,2)ans = 3 reshape(A,3,2)ans = 1 5 4 3 2 6 length(a)ans = 5第26页,共37页,2022年,5月20日,9点19分,星期五max(a): 返回向量a的最大元素m

16、ax(A,dim): 返回矩阵沿着第dim维方向的最大元素向量max(A,B): 返回矩阵A,B中对应位置上的较大元素min: 返回最小元素,用法类似maxmean(a): 返回向量a的平均值mean(A,dim): 返回矩阵A第dim维方向上平均值median: 返回中位数,用法类似meansum:求元素和,用法类似meanprod:求元素积,用法类似meancumsum:求元素累积和,用法类似meansort(a):对向量a进行升序排序sort(A,dim,mode): 对矩阵A沿着第dim维方向排序,mode:ascend(升序,默认)、descend(降序)27第27页,共37页,20

17、22年,5月20日,9点19分,星期五28a = 12 5 65 9 3 1A = 1 2 3 4 5 6 max(A,1)ans = 4 5 6 max(A,2)ans = 3 6 max(A)ans = 4 5 6 max(a)ans = 65 min(a)ans = 1第28页,共37页,2022年,5月20日,9点19分,星期五29a = 12 5 65 9 3 1A = 1 2 3 4 5 6 sum(a)ans = 95 cumsum(a)ans = 12 17 82 91 94 95 sum(A,1)ans = 5 7 9 sum(A,2)ans = 6 15 sum(A)ans

18、 = 5 7 9第29页,共37页,2022年,5月20日,9点19分,星期五30a = 12 5 20 9 3 1A = 1 2 3 4 5 6 prod(a)ans = 32400 prod(A,1)ans = 4 10 18 prod(A,2)ans = 6 120 prod(A)ans = 4 10 18第30页,共37页,2022年,5月20日,9点19分,星期五31a = 12 5 20 9 3 1A = 1 2 3 4 5 6 sort(a)ans = 1 3 5 9 12 20 sort(a,ascend)ans = 1 3 5 9 12 20 sort(a,descend)a

19、ns = 20 12 9 5 3 1 sort(A,1)ans = 1 2 3 4 5 6 sort(A,2)ans = 1 2 3 4 5 6 sort(A)ans = 1 2 3 4 5 6第31页,共37页,2022年,5月20日,9点19分,星期五例 计算以下例子321+2+1001*2*1006+9+12+297+300 sum(1:100)ans = 5050 prod(1:100)ans = 9.3326e+157 sum(6:3:300)ans = 15147阶乘:factorial(N)=prod(1:N) factorial(100)ans = 9.3326e+157第32

20、页,共37页,2022年,5月20日,9点19分,星期五33设 a = 12 5 10 9 3 1A = 1 2 3 4 5 6用多种方法求数组a的算术平均值,矩阵A每行的算术平均值 mean(a)ans = 6.6667 sum(a)/length(a)ans = 6.6667 sum(a)/size(a,2)ans = 6.6667 mean(A,2)ans = 2 5 sum(A,2)/size(A,2)ans = 2 5第33页,共37页,2022年,5月20日,9点19分,星期五34例 设a= 91, 98, 50, 75, 69, 88,利用sort函数求出排名第二大的数 a=91, 98, 50, 75, 69, 88; b index=sort(a,descend)b = 98 91 88 75

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论