1 / 64

第 2 章 MATLAB 数据

第 2 章 MATLAB 数据. § 2.1 矩阵的创建 § 2.2 算术运算 § 2.3 关系运算和逻辑运算 § 2.4 MATLAB 矩阵 、数组函数 § 2.5 MATLAB 矩阵分解 § 2.6 矩阵的特殊操作. 补充: 向量、矩阵、数组的定义: 1 )把用下标表示次序的标量数的集合称为矩阵或数组,而向量是一类特殊的矩阵;

drake
Download Presentation

第 2 章 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. 第2章 MATLAB数据 §2.1 矩阵的创建 §2.2 算术运算 §2.3 关系运算和逻辑运算 §2.4 MATLAB矩阵、数组函数 §2.5 MATLAB矩阵分解 §2.6 矩阵的特殊操作

  2. 补充: 向量、矩阵、数组的定义: 1)把用下标表示次序的标量数的集合称为矩阵或数组,而向量是一类特殊的矩阵; 2)矩阵和数组可以互换调用,准确说,矩阵是指以实数或复数为元素的长方形数组。从孤立的数的集合角度看,不管是矩阵还是数组,它们所指的并没有什么不同;但从运算角度看,矩阵运算和数组运算是不同的,在matlab中,矩阵运算是从矩阵的整体出发,依照线性运算规则进行,数组运算是从数组的元素出发,针对每个元素进行计算。

  3. 2.1 矩阵的创建 一、矩阵创建的原则: 1、矩阵的元素必须在“[ ]”中; 2、矩阵的同行元素之间用空格或“,”隔开; 3、矩阵的行与行之间用“;”或回车符隔开; 4、矩阵的尺寸不必预先定义; 5、矩阵元素可以是数值、变量、表达式或函数。

  4. 例2.1 创建矩阵 >>x=[1 2 3;4 5 6]; y=[2 3 4;5 6 7] >>Q=x*y >>x=[1 2 3;4 5 6;7 8 9] >>x=[1 2 3 4 5 6 7 8 9] >>a=2;b=3 >>x=a*b >>x=[a b c;e f g;u v w]

  5. 2.1 矩阵的创建 二、变量 与赋值 1、变量的命名 在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。 在MATLAB中,变量名区分字母的大小写。MATLAB提供的标准函数名以及命令名必须用小写字母。 例:myexamp、MYexamp、MYEXAMP 注意

  6. 变量=表达式(或数) 表达式 2.1 矩阵的创建 2、 赋值语句 MATLAB赋值语句有两种格式:

  7. 【例2.2】 x=[1,2,3;4,5,6;7,8,9] 与[1,2,3;4,5,6;7,8,9]。 【例2.3】计算 的 值,并将结果赋给变量x,后显示出结果。 注意 pi、i是matlab定义的变量,分别 表示圆周率和虚数单位!

  8. 2.1 矩阵的创建 2、预定义变量

  9. 2.1 矩阵的创建 三、矩阵的建立 1、直接输入法 2、通过M文件创建矩阵 3、通过函数创建矩阵 4、通过数据文件创建矩阵

  10. 三、矩阵的建立 1、直接输入法 从键盘上直接输入矩阵的元素。只要遵循矩阵创建原则直接输入即可,如果不希望显示结果,在命令行的最后加分号“;” 适用于所有的操作,包括程序设计 注意

  11. ①直接启动 ②在命令窗口输入命令edit。 方法 三、矩阵的建立 2、通过M文件创建矩阵 对于比较大且复杂的矩阵,有专门的M文件编辑器

  12. 三、矩阵的建立 3、通过函数创建矩阵 利用matlab的内部函数或用户自定义函数创建矩阵 例2.4 创建0到2pi间的正弦函数矩阵 >>x=0:pi/4:2*pi; %创建了0到2pi间隔为pi/4的自变量 >>y=sin(x) %得到正弦函数值 输出结果(略)

  13. 三、矩阵的建立 4、通过数据文件创建矩阵 matlab可以处理的数据包括:文本文件、.mat数据文件、.xls文件、图像文件、声音文件。 这些文件都是以矩阵的形式存储在工作空间中的 注意

  14. 这些运算是在矩阵意义下进行的, 单个数据的算术运算只是一种特殊! 注意 五、数组的除法 六、点运算 七、幂运算 八、矩阵的转置 一、矩阵和数组的加减运算 二、矩阵的乘法 三、数组的乘法 四、矩阵除法 §2.2 矩阵和数组的算术运算

  15. A、B的阶数不同,会给出错误信息, 提示用户阶数不匹配! 注意 2.2 矩阵和数组的算术运算 一、矩阵和数组的加减运 A±B

  16. 例2.5 >>a=[1 2 3;4 5 6; 7 8 9];b=[1 1 1]; >>c=a-b 例2.6 >>c=a+b

  17. 注意 A为m×n,B为n×p,则 C为m×p(必须有相邻的公共阶) 2.2 矩阵和数组的算术运算 二、矩阵的乘法

  18. 例2.7 >>A=[1 2 3;4 5 6;7 8 9];B=[1 2;3 0;7 4]; >>C=A*B 例2.8 a=rand(3) b=rand(3) c=a/b d=b\a

  19. 意 A、B数组必须有相同的阶数,则A.*B表示A和B中对应元素之间相乘 ★与矩阵的乘法相同? §2.2矩阵和数组的算术运算 三、数组的乘法

  20. 例2.9 >>a=[1 2 3];b=[4 5 6]; >>c=a.*b

  21. 一般选择右除 §2.2 矩阵和数组的算术运算 四、矩阵除法

  22. 例2.10 >>a=[1 2 3;4 5 6;7 8 9]; >>b=[4 3 2;7 5 1;12 7 92]; >>c1=a\b;c2=b/a;c3=a/b

  23. C=a.\b与C=a./b 说明:a与b的阶数必须相同。a.\b 表示b中的元素分别除以a中相应的 元素。 2.2矩阵和数组的算术运算 五、数组的除法

  24. 例2.11 >>a=[1 2 3];b=[4 5 6]; >>c=a.\b >>d=b.\a

  25. C=A.*B C=A./B C=A.\B C=A.^B §2.2 矩阵和数组的算术运算 六、点运算

  26. §2.2 矩阵和数组的算术运算 七、幂运算 C=A^B C=A.^B

  27. 例2.12 >>a=[1 2 3];b=[4 5 6]; >>c=a^b 例2.13 >>a=[1 2 3];b=[4 5 6]; >>c=a.^b 例2.14 >>a=[1 2 3];b=2; >>c=a^2 例2.15 >>a=[1 2 3];b=2; >c=a.^2

  28. 总结:对矩阵的幂运算,a、b不能 同时为矩阵,必须有一个标量;而 数组的幂运算是对其元素进行幂运 算的。

  29. 2.2 矩阵和数组的算术运算 八、矩阵的转置 C=A’ C=A.’

  30. 例2.17 ①>>a=[1+2i 3+4i] >>c1=a’ %…… ②>>c2=a.’ %…… ③>>c3=conj(a’) % 例2.16 >>a=[1 2 3 4 5 6 7 8 9] >>c=a’

  31. §2.3矩阵和数组的关系运算和逻辑运算 一、运算关系 二、逻辑运算 三、逻辑函数和关系函数

  32. §2.3矩阵和数组的关系运算和逻辑运算 一、运算关系

  33. 例2.18 >>a=[0 -1 2];b=[-3 1 2]; ①>>a<b ②>>a<=b ③>>a=2;b=[1 2 3]; >>a~=b

  34. 总结:关系运算法则: ①当两个比较量是标量时,直接比较两数的 大小,若关系成立,关系表达式结果为1, 反之为0;

  35. 总结:关系运算法则: ②当参与比较的量是两个维数相同的矩阵时, 比较的元素按标量关系元素规则逐个进行, 并给出元素的比较结果。最终关系元素的结 果是一个维数与原矩阵相同的矩阵,它的元 素由1或0组成。

  36. 总结:关系运算法则: ③当参与比较的是一个为标量,另一个为矩阵 时,则把标量与矩阵的每一个元素按标量关系 元素规则逐个比较,并给出比较的结果。最终 的关系运算的结果是一个维数与原矩阵相同的 矩阵,由1或0组成。

  37. 与其他计算机语言基本一致 §2.3矩阵和数组的关系运算和逻辑运算 二、逻辑运算 逻辑运算符:&(与)、|(或)、~(非)

  38. 逻辑运算法则: ①在逻辑运算中,确认非零元素为真,用1 表示;零元素为假,用0表示 ②设参与逻辑运算的是两个标量a、b,那么 a&b a、b全非零时,结果为1,否则为0; a|b a、b中只要有一个非零,结果为1,反之为0 ~a 当a为零时,结果为1,反之为0。

  39. 逻辑运算法则: ③若参与逻辑运算的是两个同维矩阵,那么运 算运算将对矩阵相同位置上的元素按标量规则 逐个进行。最终运算结果是一个与原矩阵同维 的矩阵,其元素由1或0组成。 ④若参与逻辑运算的一个是标量一个是矩阵, 那么运算运算将在标量与矩阵每个元素之间按 标量规则逐个进行。最终运算结果是一个与原 矩阵同维的矩阵,其元素由1或0组成。

  40. 逻辑运算法则: ⑤逻辑运算服从矩阵运算规则; ⑥在算术、关系、逻辑运算中,算术运算 优先级最高,逻辑运算优先级最低。

  41. all(x) find(x) §2.3矩阵和数组的关系运算和逻辑运算 三、逻辑函数和关系函数 检查x是否全为1 找出非零元素的位置标识

  42. 例2.20 建立矩阵A,然后找出大于4的元素位置 (1)建立A >>A=[4 -6 5 -54 0 6 56 0 67 -45 0] (2)找出大于4的元素位置 >>find(A>4)

  43. §2.4 矩阵函数与数组函数 一、矩阵函数 二、通用函数

  44. §2.4 矩阵函数与数组函数 一、矩阵函数 matlab提供了大量的矩阵函数,如特征值、奇异值的计算、条件数、范数、矩阵的秩和矩阵的空间运算等 inv(逆)、pinv(伪逆)等 参见教材P36表3

  45. 例2.21 矩阵a为 ,计算a 的特 征值、特征矢量。 [c,d]=eig(a) 输入矩阵,计算 >>a=[1 2 3;4 5 6;7 8 9]; >>[c,d]=eig(a)

  46. 例2.22 矩阵a为 ,计算a 的 逆矩阵、伪逆矩阵。 c=inv(a);d=pinv(a) 输入矩阵,计算 >>a=[1 2 3;4 5 6;7 8 9]; >>c=inv(a) %这是严重的变态矩阵 >>d=pinv(a)

  47. 数学函数:sin、cos、log等 通用函数 教材P38表4表5 特殊函数:erf、cross、cart2sph §2.4 矩阵函数与数组函数 二、通用函数

  48. 直接求a的全部特征值 V=eig(a) 特征值与特征向量 特征值v和特征向量d [v,d]=eig(a) [v,d]=eig(a,nobalance) [v,d]=eig(a,b) 广义特征值分解 §2.5 矩阵分解 一、特征值分解 关闭平衡

  49. 例2.23 对a=[1 1]进行奇异值分解 >>a=[1 1]; >>[u,s,v]=svd(a) §2.5 矩阵分解 二、奇异值分解 [u,sv]=svd(a) or [us,v]=svd(a)

  50. §2.5 矩阵分解 三、LU分解 [l,u]=lu(a) 例2.24 P40 “例2-22” a=[1 2 3;4 5 6;7 8 9]; [l,u]=lu(a)

More Related