640 likes | 761 Views
第 2 章 MATLAB 数据. § 2.1 矩阵的创建 § 2.2 算术运算 § 2.3 关系运算和逻辑运算 § 2.4 MATLAB 矩阵 、数组函数 § 2.5 MATLAB 矩阵分解 § 2.6 矩阵的特殊操作. 补充: 向量、矩阵、数组的定义: 1 )把用下标表示次序的标量数的集合称为矩阵或数组,而向量是一类特殊的矩阵;
E N D
第2章 MATLAB数据 §2.1 矩阵的创建 §2.2 算术运算 §2.3 关系运算和逻辑运算 §2.4 MATLAB矩阵、数组函数 §2.5 MATLAB矩阵分解 §2.6 矩阵的特殊操作
补充: 向量、矩阵、数组的定义: 1)把用下标表示次序的标量数的集合称为矩阵或数组,而向量是一类特殊的矩阵; 2)矩阵和数组可以互换调用,准确说,矩阵是指以实数或复数为元素的长方形数组。从孤立的数的集合角度看,不管是矩阵还是数组,它们所指的并没有什么不同;但从运算角度看,矩阵运算和数组运算是不同的,在matlab中,矩阵运算是从矩阵的整体出发,依照线性运算规则进行,数组运算是从数组的元素出发,针对每个元素进行计算。
2.1 矩阵的创建 一、矩阵创建的原则: 1、矩阵的元素必须在“[ ]”中; 2、矩阵的同行元素之间用空格或“,”隔开; 3、矩阵的行与行之间用“;”或回车符隔开; 4、矩阵的尺寸不必预先定义; 5、矩阵元素可以是数值、变量、表达式或函数。
例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]
2.1 矩阵的创建 二、变量 与赋值 1、变量的命名 在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。 在MATLAB中,变量名区分字母的大小写。MATLAB提供的标准函数名以及命令名必须用小写字母。 例:myexamp、MYexamp、MYEXAMP 注意
变量=表达式(或数) 表达式 2.1 矩阵的创建 2、 赋值语句 MATLAB赋值语句有两种格式:
【例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定义的变量,分别 表示圆周率和虚数单位!
2.1 矩阵的创建 2、预定义变量
2.1 矩阵的创建 三、矩阵的建立 1、直接输入法 2、通过M文件创建矩阵 3、通过函数创建矩阵 4、通过数据文件创建矩阵
三、矩阵的建立 1、直接输入法 从键盘上直接输入矩阵的元素。只要遵循矩阵创建原则直接输入即可,如果不希望显示结果,在命令行的最后加分号“;” 适用于所有的操作,包括程序设计 注意
①直接启动 ②在命令窗口输入命令edit。 方法 三、矩阵的建立 2、通过M文件创建矩阵 对于比较大且复杂的矩阵,有专门的M文件编辑器
三、矩阵的建立 3、通过函数创建矩阵 利用matlab的内部函数或用户自定义函数创建矩阵 例2.4 创建0到2pi间的正弦函数矩阵 >>x=0:pi/4:2*pi; %创建了0到2pi间隔为pi/4的自变量 >>y=sin(x) %得到正弦函数值 输出结果(略)
三、矩阵的建立 4、通过数据文件创建矩阵 matlab可以处理的数据包括:文本文件、.mat数据文件、.xls文件、图像文件、声音文件。 这些文件都是以矩阵的形式存储在工作空间中的 注意
这些运算是在矩阵意义下进行的, 单个数据的算术运算只是一种特殊! 注意 五、数组的除法 六、点运算 七、幂运算 八、矩阵的转置 一、矩阵和数组的加减运算 二、矩阵的乘法 三、数组的乘法 四、矩阵除法 §2.2 矩阵和数组的算术运算
A、B的阶数不同,会给出错误信息, 提示用户阶数不匹配! 注意 2.2 矩阵和数组的算术运算 一、矩阵和数组的加减运 A±B
例2.5 >>a=[1 2 3;4 5 6; 7 8 9];b=[1 1 1]; >>c=a-b 例2.6 >>c=a+b
注意 A为m×n,B为n×p,则 C为m×p(必须有相邻的公共阶) 2.2 矩阵和数组的算术运算 二、矩阵的乘法
例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
注 意 A、B数组必须有相同的阶数,则A.*B表示A和B中对应元素之间相乘 ★与矩阵的乘法相同? §2.2矩阵和数组的算术运算 三、数组的乘法
例2.9 >>a=[1 2 3];b=[4 5 6]; >>c=a.*b
一般选择右除 §2.2 矩阵和数组的算术运算 四、矩阵除法
例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
C=a.\b与C=a./b 说明:a与b的阶数必须相同。a.\b 表示b中的元素分别除以a中相应的 元素。 2.2矩阵和数组的算术运算 五、数组的除法
例2.11 >>a=[1 2 3];b=[4 5 6]; >>c=a.\b >>d=b.\a
C=A.*B C=A./B C=A.\B C=A.^B §2.2 矩阵和数组的算术运算 六、点运算
§2.2 矩阵和数组的算术运算 七、幂运算 C=A^B C=A.^B
例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
总结:对矩阵的幂运算,a、b不能 同时为矩阵,必须有一个标量;而 数组的幂运算是对其元素进行幂运 算的。
2.2 矩阵和数组的算术运算 八、矩阵的转置 C=A’ C=A.’
例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’
§2.3矩阵和数组的关系运算和逻辑运算 一、运算关系 二、逻辑运算 三、逻辑函数和关系函数
§2.3矩阵和数组的关系运算和逻辑运算 一、运算关系
例2.18 >>a=[0 -1 2];b=[-3 1 2]; ①>>a<b ②>>a<=b ③>>a=2;b=[1 2 3]; >>a~=b
总结:关系运算法则: ①当两个比较量是标量时,直接比较两数的 大小,若关系成立,关系表达式结果为1, 反之为0;
总结:关系运算法则: ②当参与比较的量是两个维数相同的矩阵时, 比较的元素按标量关系元素规则逐个进行, 并给出元素的比较结果。最终关系元素的结 果是一个维数与原矩阵相同的矩阵,它的元 素由1或0组成。
总结:关系运算法则: ③当参与比较的是一个为标量,另一个为矩阵 时,则把标量与矩阵的每一个元素按标量关系 元素规则逐个比较,并给出比较的结果。最终 的关系运算的结果是一个维数与原矩阵相同的 矩阵,由1或0组成。
与其他计算机语言基本一致 §2.3矩阵和数组的关系运算和逻辑运算 二、逻辑运算 逻辑运算符:&(与)、|(或)、~(非)
逻辑运算法则: ①在逻辑运算中,确认非零元素为真,用1 表示;零元素为假,用0表示 ②设参与逻辑运算的是两个标量a、b,那么 a&b a、b全非零时,结果为1,否则为0; a|b a、b中只要有一个非零,结果为1,反之为0 ~a 当a为零时,结果为1,反之为0。
逻辑运算法则: ③若参与逻辑运算的是两个同维矩阵,那么运 算运算将对矩阵相同位置上的元素按标量规则 逐个进行。最终运算结果是一个与原矩阵同维 的矩阵,其元素由1或0组成。 ④若参与逻辑运算的一个是标量一个是矩阵, 那么运算运算将在标量与矩阵每个元素之间按 标量规则逐个进行。最终运算结果是一个与原 矩阵同维的矩阵,其元素由1或0组成。
逻辑运算法则: ⑤逻辑运算服从矩阵运算规则; ⑥在算术、关系、逻辑运算中,算术运算 优先级最高,逻辑运算优先级最低。
all(x) find(x) §2.3矩阵和数组的关系运算和逻辑运算 三、逻辑函数和关系函数 检查x是否全为1 找出非零元素的位置标识
例2.20 建立矩阵A,然后找出大于4的元素位置 (1)建立A >>A=[4 -6 5 -54 0 6 56 0 67 -45 0] (2)找出大于4的元素位置 >>find(A>4)
§2.4 矩阵函数与数组函数 一、矩阵函数 二、通用函数
§2.4 矩阵函数与数组函数 一、矩阵函数 matlab提供了大量的矩阵函数,如特征值、奇异值的计算、条件数、范数、矩阵的秩和矩阵的空间运算等 inv(逆)、pinv(伪逆)等 参见教材P36表3
例2.21 矩阵a为 ,计算a 的特 征值、特征矢量。 [c,d]=eig(a) 输入矩阵,计算 >>a=[1 2 3;4 5 6;7 8 9]; >>[c,d]=eig(a)
例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)
数学函数:sin、cos、log等 通用函数 教材P38表4表5 特殊函数:erf、cross、cart2sph §2.4 矩阵函数与数组函数 二、通用函数
直接求a的全部特征值 V=eig(a) 特征值与特征向量 特征值v和特征向量d [v,d]=eig(a) [v,d]=eig(a,nobalance) [v,d]=eig(a,b) 广义特征值分解 §2.5 矩阵分解 一、特征值分解 关闭平衡
例2.23 对a=[1 1]进行奇异值分解 >>a=[1 1]; >>[u,s,v]=svd(a) §2.5 矩阵分解 二、奇异值分解 [u,sv]=svd(a) or [us,v]=svd(a)
§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)