1 / 114

Matlab 数值数组

Matlab 数值数组. 一、创建数值数组 二、数组操作函数 三、数组运算 四、矩阵运算 五、数组的访问和赋值 六、与数组相关的函数 七、一维数组在向量运算中的应用 八、一维数组在一元多项式运算中的应用. 一、创建数值数组. 二维数组( array )是由实数或复数排列成矩形而构成的,从数据结构上看,二维数组和矩阵没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵( matrix )。. 数值数组 ( 简称为数组 ) 是 Matlab 中最重要的一种内建数据类型。. 一维数组是矩阵的特殊形式. 行数组: n 个元素排成一行

meli
Télécharger la présentation

Matlab 数值数组

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matlab数值数组 一、创建数值数组 二、数组操作函数 三、数组运算 四、矩阵运算 五、数组的访问和赋值 六、与数组相关的函数 七、一维数组在向量运算中的应用 八、一维数组在一元多项式运算中的应用

  2. 一、创建数值数组 二维数组(array)是由实数或复数排列成矩形而构成的,从数据结构上看,二维数组和矩阵没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵(matrix)。 数值数组(简称为数组)是Matlab中最重要的一种内建数据类型。

  3. 一维数组是矩阵的特殊形式 行数组:n个元素排成一行 又称为行向量(row vector) 在Matlab中作为 1 X n 矩阵 列数组:m个元素排成一列 又称为列向量(column vector) 在Matlab中作为 n X1 矩阵 一个数: 又称为标量 在Matlab中作为 1 X1 矩阵 一般情况下,向量指列向量 Matlab中,标量和向量一般用小写字符字母表示

  4. 1、用方括号[ ]创建一维数组 • 整个数组放在方括号里 • 行数组元素用空格或逗号分隔 x = [2, pi/2, sqrt(3), 3+5i] • 列数组元素用分号分隔 y = [2;pi;3/4;j] • 标点符号一定要在英文状态下输入 • x = [] 生成空数组

  5. (1)在键盘上输入下列内容 A = [1,2,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 7 8 9 2、用方括号[ ]创建二维数组 说明:直接输入矩阵时,每行元素用空格或逗号分隔,矩阵行用分号分隔,整个矩阵放在方括号里,标点符号一定要在英文状态下输入。二维数组一般用大写字母表示。

  6. 3、用方括号[ ]由一维数组创建二维数组 a = [1,3,5] b = [2,4,6] c = [3,5,7] D = [a;b] E = [b;c] F = [D,E]

  7. 4、用冒号:创建一维数组 x = a:b 默认 inc = 1 • x = a:inc:b a,b必须为实数 x = [a,a+inc,a+2*inc,…] a是数组x中的第一个元素,b不一定是数组x的最后一个元素。

  8. 5、用linspace()函数创建一维数组 x = linspace(a,b) 默认 n = 100 x = linspace(a,b,n) 在[a,b]区间内生成 n 个数据,包括a和b在内 若a,b为实数,等效于: x = linspace(0,pi,10) x = linspace(1+i,100+100*i)

  9. 6、用logspace()函数创建一维数组 x = logspace(a,b) 默认n = 50 x = logspace(a,b,n) x = logspace(a,pi)

  10. 7、创建特殊数组的函数

  11. diag(v,k)

  12. 练习:在matlab中生成二维数组 A = 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 B = 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 -4 0 0 0 0 -3 0 0 0 0 -2 0 0 0 0 -1

  13. 二、数组操作函数

  14. 练习:试写出下列matlab语句的输出结果,并在matlab中进行验证。练习:试写出下列matlab语句的输出结果,并在matlab中进行验证。 a = 1:12 B = reshape(a,3,4) C = rot90(B) d = diag(C) E = diag(d) F = [tril(B);triu(B)] G = cat(2,tril(C),triu(C)) H = repmat(a,4,1) I = flipud(G) J = kron(d,E)

  15. 三、数组运算 数组运算是Matlab软件定义的运算规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。 无论在数组上施加什么运算(加减乘除或函数),总认定那种运算对被运算数组中的每个元素(Element)进行运算。

  16. 1、转置运算 A.’ A’ 对A做转置(行→列,列→行) 对A做共轭转置 若A的元素均为实数,则A.’与A’的结果相同 B = A.’ 对数组A做转置运算,将运算结果赋值给变量B,内存中数组A的内容并没有任何变化。

  17. 2、两个维数相同的数组之间的数组运算 • A + B:加,对应位置的数组元素相加 • A - B:减,对应位置的数组元素相减 • A.*B:点乘,对应位置的数组元素相乘 • A./B:右点除,对应位置的数组元素相除 • A.\B:左点除 • A.^B:点幂,对应位置的数组元素做幂运算 运算结果为与A、B同维的数组

  18. 3、数组的与标量 的运算 A + c :A的每个元素加c A - c: A的每个元素减c A.*c 或 A*c:A的每个元素乘c, A./c 或 A/c: A的每个元素除以c A.\c 或 A\c:c除以A的每个元素 A.^c:点幂, A的每个元素做幂运算 c.^A:点幂,c做幂运算 运算结果为与A同维的数组

  19. 练习:试写出下列matlab语句的输出结果,并在matlab中进行验证。练习:试写出下列matlab语句的输出结果,并在matlab中进行验证。 A = ones(3) B = eye(3) C = zeros(3) D = (A+B).*(A-B) E = (D + 1) + (D - 1)*i F = E.’./E’ + E.’.\E’ G = B.^D + D.^B

  20. 4、函数作用在数组上的运算规则 Matlab中的很多函数都可以直接以数组作为输入参数,函数输出也为数组。

  21. 输入为行数组,则输出也为行数组 输入为列数组,则输出也为列数组 输入为二维数组,则输出也为二维数组

  22. 例题:绘制 y = sin(x) 的图像 x = 0:0.1:2*pi y = sin(x) plot(x,y) 函数作用在一维数组上

  23. 四、矩阵运算

  24. 1、方阵的行列式 手工计算行列式是非常繁琐的,特别是高阶行列式。Matlab中,行列式由函数 det( ) 实现。

  25. 练习:求下面的行列式

  26. 2、矩阵相等 定义 设有两个m×n矩阵 则称矩阵A和B相等. 记作A=B Matlab中,矩阵相等可用函数 isequal(A,B) 来判断。若两矩阵相等,则isequal返回逻辑1(true),否则返回逻辑0(false)

  27. 3、矩阵转置、共轭转置运算 • A’矩阵共轭转置 • A.’矩阵转置 对称矩阵:一个矩阵与其转置矩阵相等, 反对称矩阵:一个矩阵与其转置矩阵的和为零矩阵 转置的运算级别比加、减、乘、除等运算高 A = [1,2;2,1] if ( isequal(A,A.’) == 1) disp(‘A是对称矩阵’) else disp(‘A不是对称矩阵’) end A = [0,1;-1,0] if ( isequal(A,-A.’) == 1) disp(‘A是反对称矩阵’) else disp(‘A不是反对称矩阵’) end

  28. 4、矩阵加法 定义 设有两个m×n矩阵 称为矩阵A与B的和. 记作 Matlab中,矩阵的加法就是 A + B

  29. 5、矩阵减法 Matlab中,矩阵减法就是 A - B

  30. 定义 数k与矩阵A的乘积记作kA或 A k,规定为 运算规律: 6、数与矩阵的乘法 (i) k(A+B)=kA+kB (ii) (k+h)A=kA+hA (iii) k(h A)=(k h)A (iv) 1A=A 其中A、B为m╳n 矩阵;k、h为数。 Matlab中,数与矩阵的乘法可写为:c*A 、A*c、c.*A,A.*c,这里 * 和 .* 的结果是一样的。

  31. 7、矩阵的乘法 矩阵A与B的乘积是一个m×n矩阵 其中 记作C =AB Matlab中,矩阵与矩阵的乘法就是 A*B

  32. 练习

  33. 8、方阵的迹 由n2个数排成的n×n矩阵: 称为n阶方阵。记作A=(aij ), i,j=1,2,…,n或 由方阵左上角元素到右下角元素表示的位置称为方阵的主对角线,主对角线元素的和称为方阵的迹,记作: Matlab中,方阵的迹用函数 trace(A) 实现,或用sum(diag(A))来实现

  34. 9、方阵的幂 定义:设A是一个n阶方阵,k为正整数, 称为A的k次幂. A k 就是k个A连乘.显然只有方阵的幂才有意义。 规定:A0=E (i) A k Al=A k+1 (ii)(A k)l=A k l 其中k、l为正整数. 例如 Matlab中,方阵的幂就是 A^k

  35. 练习

  36. 10、矩阵多项式 Matlab中,方阵的多项式用函数polyvalm(p,A)实现。

  37. 例:

  38. 在matlab中,一个一元多项式用一个行向量来表示的,向量元素为多项式系数的降幂排列,其中最后一个元素代表多项式中的0幂项。 在matlab中,一个一元多项式用一个行向量来表示的,向量元素为多项式系数的降幂排列,其中最后一个元素代表多项式中的0幂项。 p = [1,-5, 3] A = [2,-1;0,3] F = polyvalm(p,A)

  39. 定义:对于n阶方阵A,如果有一个n阶方阵B,使得 AB=BA=E,则方阵A称为可逆矩阵,简称A可逆。方阵B称为A的逆矩阵。记为A-1. 11、方阵的逆 注 (1) 这时矩阵B亦可逆,B的逆阵为A.即B-1=A. (2)如果方阵A可逆,则A的逆矩阵是惟一的. (3)可逆矩阵也称为非退化阵,也常被称为非奇异阵; 不可逆矩阵称为退化阵,也常被称为奇异阵. Matlab中,求方阵的逆用函数inv(A)实现,也可以用A-1实现,即:A^(-1)

  40. 答案 练习

  41. 求矩阵 X使满足 AXB = C 若A-1,B-1存在,则由A-1左乘上式,B-1右乘上式,有: A-1AXBB-1=A-1CB-1, (A-1A)X(BB-1 )=A-1CB-1, 即 X = A-1CB-1.

  42. 练习 答案

  43. 练习

  44. 五、数组的访问和赋值 b = x(end) end是数组x的最后一个元素的下标 引用数组 x 中的最后一个元素,将其赋值给变量 b 1、引用一维数组中的单个元素 x = 1:5 k = 2 a = x(k) 引用数组 x 中的第 k 个元素,将其赋值给变量 a Matlab中数组元素的下标从 1 开始 c = x(8)会出现什么结果?

  45. 2、一维数组中单个元素的赋值 x = 1:5 a = 1.5 k = 3 x(k) = 0 将 0 赋值给数组 x 中的第 k 个元素 x(end) = a 将 a 赋值给数组 x 中的最后一个元素 x(8) = 6.5 会出现什么结果?

More Related