2 369 如键入 a(1,)=b %将a的第1行中所有元素用b的元素替代 如键入 a(;)=1 %矩阵所有元素设为1 如键入 a(2,3)=10%第2行第3列元素等于10 MA∏LAB已定义的矩阵的维数可以扩大,但不能缩小,除非利用 clear命令删除该矩阵 如果输入的同名矩阵的维数小于原矩阵维数, MATLAB认为是原矩阵修改了部分元素或子 块。增加矩阵的维数时,可以只给出非零 MATLAB自动将未定义元素改为0。如键入 a(5,5)=2%定义矩阵A的第5行,第5列元素 结果显示 结果表示A矩阵扩展为5×5维矩阵 另外, MATLAB可以进行3维数组操作,用一系列矩阵表示,所有矩阵维数必须相等 如键入 p(1,)=[12;34],p(2,)=[56;78] 结果显示了3维数组P的两个子矩阵的第1列、第2列元素。在多维数组的插值运算 中,这种表示方式是有用的 5.矩阵的翻转操作 MATLAB提供了几种函数可以进行矩阵的翻转操作 ·矩阵上下翻转 fliud命令可以将n行矩阵A作上下翻转,将A的行按照n…1的顺序重新排列,A的 列保持不变。如有 3692 键入 b= lipid (a)%进行上下翻转 则有 ·矩阵左右翻转 fipr命令可以将m列矩阵A作左右翻转,将A的列按照m…1的顺序重新排列,A的 列保持不变。如对上述a矩阵,键入 c=iplr(a)%进行左右翻转 则有 ·矩阵逆时针90°旋转 rot90命令将矩阵逆时针转90°,如对于上述A阵,键入 rot90(a)%逆时针旋转90° 则有 另外,还有矩阵的对角化等操作。 MATLAB命令见表1-7 6
6 1 2 3 4 5 6 b= 7 8 9 如键入 a(1,:)=b %将 a 的第 1 行中所有元素用 b 的元素替代 如键入 a(:,:)=1 %矩阵所有元素设为 1 如键入 a(2,3)=10 %第 2 行第 3 列元素等于 10 MATLAB 已定义的矩阵的维数可以扩大,但不能缩小,除非利用 clear 命令删除该矩阵。 如果输入的同名矩阵的维数小于原矩阵维数,MATLAB 认为是原矩阵修改了部分元素或子 块。增加矩阵的维数时,可以只给出非零 MATLAB 自动将未定义元素改为 0。如键入 a(5,5)=2 %定义矩阵 A 的第 5 行,第 5 列元素 结果显示 结果表示 A 矩阵扩展为 5×5 维矩阵。 另外,MATLAB 可以进行 3 维数组操作,用一系列矩阵表示,所有矩阵维数必须相等。 如键入: p(1,:,:)=[1 2; 3 4], p(2,:,:)=[5 6; 7 8] 结果显示了 3 维数组 P 的两个子矩阵的第 1 列、第 2 列元素。在多维数组的插值运算 中,这种表示方式是有用的。 5.矩阵的翻转操作 MATLAB 提供了几种函数可以进行矩阵的翻转操作。 ·矩阵上下翻转 flipud 命令可以将 n 行矩阵 A 作上下翻转,将 A 的行按照 n…1 的顺序重新排列,A 的 列保持不变。如有 a= 1 2 3 4 5 6 7 8 9 10 11 12 键入 b=flipud(a) %进行上下翻转 则有 ·矩阵左右翻转 fliplr 命令可以将 m 列矩阵 A 作左右翻转,将 A 的列按照 m…1 的顺序重新排列,A 的 列保持不变。如对上述 a 矩阵,键入 c=fliplr(a) %进行左右翻转 则有 ·矩阵逆时针 90°旋转 rot90 命令将矩阵逆时针转 90°,如对于上述 A 阵,键入 rot90(a) % 逆时针旋转 90° 则有 另外,还有矩阵的对角化等操作。MATLAB 命令见表 1 - 7
表1-7矩阵操作函数 命令 说明 矩阵作上下翻转 矩阵作左右翻转 t90(A) 矩阵逆时针翻转90° diag(a) 提取矩阵A的对角元素,返回列向量 diag(v) 以列向量V作对角元素创建对角矩阵 提取A的下三角矩阵 triu(a) 提取A的上三角矩阵 1.5.2矩阵运算 矩阵运算包括矩阵与标量、矩阵与矩阵的运算;矩阵函数和稀疏矩阵应用等。下面分别 加以说明 1.矩阵与标量的运算 运算包括+、一、×、÷和乘方等运算。矩阵和标量运算完成矩阵的每个元素对该标量 的运算。如已知 456 MATLAB用符号“^”表示乘方。求矩阵乘方时要求矩阵为方矩阵。已知矩阵 若键入 b^2%其平方为b×b 则有 若键入 b^(-1)%实际是求b的逆矩阵 则有 b^(02)%实际是将b矩阵开5次方 p=b^(0.2) 则有 2.矩阵与矩阵的运算 矩阵加减法运算 矩阵A和B维数完全相同时,可以进行矩阵加减法运算。它会自动地使得A和B矩 阵的相应元素相加减。如果A和B的维数不相等,则 MATLAB将自动地给出错误信息,提 示两个矩阵的维数不相等。如已知 a[123456]b=7;8;9c=[10,1112 键入 a+b 则出现 由于A,B的维数不等,程序给出了错误信息。而如果键入
7 表 1 – 7 矩阵操作函数 命 令 说 明 flipud(A) fliplr(A) rot90(A) diag(A) diag(V) tril(A) triu(A) 矩阵作上下翻转 矩阵作左右翻转 矩阵逆时针翻转 90° 提取矩阵 A 的对角元素,返回列向量 以列向量 V 作对角元素创建对角矩阵 提取 A 的下三角矩阵 提取 A 的上三角矩阵 1.5.2 矩阵运算 矩阵运算包括矩阵与标量、矩阵与矩阵的运算;矩阵函数和稀疏矩阵应用等。下面分别 加以说明。 1. 矩阵与标量的运算 运算包括+、—、×、÷和乘方等运算。矩阵和标量运算完成矩阵的每个元素对该标量 的运算。如已知 a= 1 2 3 4 5 6 则 MATLAB 用符号“^”表示乘方。求矩阵乘方时要求矩阵为方矩阵。已知矩阵 b= 2 4 1 5 若键入 b^2 % 其平方为 b×b 则有 若键入 b^(-1) % 实际是求 b 的逆矩阵 则有 b^(0.2) %实际是将 b 矩阵开 5 次方 p=b^(0.2) 则有 2. 矩阵与矩阵的运算 ·矩阵加减法运算 矩阵 A 和 B 维数完全相同时,可以进行矩阵 加减法运算。它会自动地使得 A 和 B 矩 阵的相应元素相加减。如果 A 和 B 的维数不相等,则 MATLAB 将自动地给出错误信息,提 示两个矩阵的维数不相等。如已知 a=[1 2 3;4 5 6],b=[7;8;9],c=[10;11;12] 键入 a+b 则出现 由于 A,B 的维数不等,程序给出了错误信息。而如果键入
b+c 则有 矩阵乘法运算 两个矩阵A,B的维数相容时(A的列数等于B的行数),可以进行C=A×B的运算。 如对于上述定义的ab阵,若键入 则有 另外,MA∏LAB可以进行 kronecker乘法运算。指令形式为C=kron(A,B),表示An xm和B×q矩阵的C=A⑧B运算。结果为增广矩阵Cmxm,它表示A矩阵的每个元素依次与 B矩阵的所有元素相乘,组成矩阵子块,n×m个子块共同组成新的矩阵C。如若 键入 cl=kron(ab)%求A,B的 kronecker乘积 则有 阵除法运算 矩阵的除法运算包括左除和右除两种运算。其中 左除:A\B=AB,A为方矩阵; 右除:AB=AB1,B为方矩阵 如已知 a=[12;34],b=[135;246,键入 cl=a\b%左除,结果为al×b 则有 若已知 c114 336 键入 b%右除,结果为b×c 则有 矩阵的除法运算实际是求AX=B的解的过程。当A为非奇异矩阵时,结果是最小二乘 解,即矩阵除法可找到使‖AX-B误差绝对值最小的X。 矩阵的点运算 MA∏LAB中定义了一种特殊的运算,即所谓的点运算。两个矩阵之间的点运算是该矩 阵对应元素的直接运算,例如C=A.×B表示A和B矩阵的相应元素之间直接进行乘法运算 然后将结果赋给C矩阵。注意,点乘积运算要求A和B矩阵的维数相同。这种点乘积又称 为 Hadamard乘积。可以看出,这种运算和普通乘法运算是不同的,例如,已知A,B矩阵
8 b+c 则有 ·矩阵乘法运算 两个矩阵 A,B 的维数相容时(A 的列数等于 B 的行数),可以进行 C=A×B 的运算。 如对于上述定义的 a,b 阵,若键入 cc=a*b 则有 另外,MATLAB 可以进行 kronecker 乘法运算。指令形式为 C=kron(A,B),表示 An ×m和 Bp×q 矩阵的 C=A○× B 运算。结果为增广矩阵 Cnp×mq,它表示 A 矩阵的每个元素依次与 B 矩阵的所有元素相乘,组成矩阵子块,n×m 个子块共同组成新的矩阵 C。如若 a= 1 2 3 4 5 6 b= 7 8 9 键入 cl=kron(a,b) % 求 A,B 的 kronecker 乘积 则有 ·矩阵除法运算 矩阵的除法运算包括左除和右除两种运算。其中, 左除:A\B=A-1B,A 为方矩阵; 右除:A/B=AB-1,B 为方矩阵。 如已知 a=[1 2; 3 4],b=[1 3 5; 2 4 6],键入 cl=a\b %左除,结果为 a -1×b 则有 若已知 c= 1 1 3 1 2 3 4 5 6 键入 b/c %右除,结果为 b×c -1 则有 矩阵的除法运算实际是求 AX=B 的解的过程。当 A 为非奇异矩阵时,结果是最小二乘 解,即矩阵除法可找到使||AX-B||误差绝对值最小的 X。 ·矩阵的点运算 MATLAB 中定义了一种特殊的运算,即所谓的点运算。两个矩阵之间的点运算是该矩 阵对应元素的直接运算,例如 C=A.×B 表示 A 和 B 矩阵的相应元素之间直接进行乘法运算, 然后将结果赋给 C 矩阵。注意,点乘积运算要求 A 和 B 矩阵的维数相同。这种点乘积又称 为 Hadamard 乘积。可以看出,这种运算和普通乘法运算是不同的,例如,已知 A,B 矩阵 a=
3 若键入 c=a*b 则有 若键入 cc=a *b 则有 可以看出,这两种乘积结果是不同的。前者是普通矩阵乘积,而后者是两个矩阵对应元 素之间的乘积,形成了新的矩阵[a*b]。点运算在 MATLAB中起着很重要的作用,例如 如果ⅹ是一个向量,则求取函数x的模值时不能直接写成x*x,而必须写成x.*ⅹ。在进行 矩阵的点运算时,要求运算的两个矩阵的维数一致,其实一些特殊的矩阵函数,如sinO也 是由点运算的形式来进行的,因为它要对矩阵的每个元素求取正弦值。 矩阵点运算不仅可以用于点乘积运算,还可以用于其它运算。比如对前面给出的a矩阵 作a.*a运算,则将得出下面的结果: 键入 a.*a%结果形成新矩阵[a32] 则有 矩阵求幂 矩阵求幂的运算包括矩阵与常数和矩阵与矩阵的幂运算,用点运算的形式表示。具体解 释如下 ^3={a],a矩阵的3次方—A矩阵的每个元素的3次方形成的新矩阵 3.^a=3叫],3的a次方一一新矩阵的每个矩阵元素都是以3为底,以A矩阵的对应元 素为幂指数,形成的新矩阵 ^b=a吲,a的b次方一一新矩阵的每个元素都以A的元素为底,以B的对应元素为 幂指数。例如有 键入 则有 键入 则有 若有 键入
9 1 2 3 4 b= 2 2 1 2 若键入 c=a*b 则有 若键入 cc=a. *b 则有 可以看出,这两种乘积结果是不同的。前者是普通矩阵乘积,而后者是两个矩阵对应元 素之间的乘积,形成了新的矩阵[aij * bij]。点运算在 MATLAB 中起着很重要的作用,例如, 如果 x 是一个向量,则求取函数 x 的模值时不能直接写成 x*x,而必须写成 x. * x。在进行 矩阵的点运算时,要求运算的两个矩阵的维数一致,其实一些特殊的矩阵函数,如 sin()也 是由点运算的形式来进行的,因为它要对矩阵的每个元素求取正弦值。 矩阵点运算不仅可以用于点乘积运算,还可以用于其它运算。比如对前面给出的α矩阵 作 a. * a 运算,则将得出下面的结果: 键入 a. * a %结果形成新矩阵[aij2 ] 则有 ·矩阵求幂 矩阵求幂的运算包括矩阵与常数和矩阵与矩阵的幂运算,用点运算的形式表示。具体解 释如下: a. ^3=[aij2 ],α矩阵的 3 次方——A 矩阵的每个元素的 3 次方形成的新矩阵; 3. ^a=[3aij],3 的 a 次方——新矩阵的每个矩阵元素都是以 3 为底,以 A 矩阵的对应元 素为幂指数,形成的新矩阵。 a. ^b=[aij bij],a 的 b 次方——新矩阵的每个元素都以 A 的元素为底,以 B 的对应元素为 幂指数。例如有 a= 1 2 3 4 键入 a. ^3 则有 键入 3. ^a 则有 若有 b= 2 1 3 2 键入 a. ^b
则有 15.3矩阵函数 MATLAB定义了一些特殊矩阵,不必一一赋值定义。特殊矩阵定义见表1-8。 表1-8特殊矩阵 命令 说明 空矩阵 A=eye(n) n维单位矩阵 全部元素都为1的矩阵 元素服从0和1之间均匀分布的随面矩阵 randn(n, m) 元素服从零均值单位方差正态分布的随机矩阵 A-=zeros(n, m) 全部元素都为0的矩阵 MATLAB还提供了很多用于求解线性代数数值问题的矩阵函数。表1-9给出了大部分 矩阵函数的简短描述 表1-9矩阵函数 命令 说明 d=eig(a) 矩阵特征值 矩阵特征值与特征向量 行列式计算 expm(A) 矩阵求幂 inv(A) 矩阵的逆 logm(A) 矩阵的对数 norm(A) 矩阵和向量的范数 m(A,1) 1——范数 norm(A2 一范数(欧几里德范数) norm(A, inf) 无穷大范数 norm(A, p) P—一范数(只对向量) norm(A,’fro3) F——范数 null(A) 零空间 orth(A) 正交化 pinv(A) 伪逆 poly(A) 特征多项式 schur(A) 分解 sqrt(A) 矩阵平方根 svd(a) 奇异值分解 TRACE(A) 对角元素之和 注意,上述矩阵函数,如矩阵求幂等运算是通过级数求出的,与矩阵元素的点运算结果 不同。若希望求矩阵每个元素的相应函数,如sin,tan,log等运算,可以直接采用标量 算命令,如有 如键入 sin(a)
10 则有 1.5.3 矩阵函数 MATLAB 定义了一些特殊矩阵,不必一一赋值定义。特殊矩阵定义见表 1-8。 表 1-8 特殊矩阵 命令 说明 A=[ ] A=eye(n) A=ones(n,m) A=rand(n,m) A=randn(n,m) A=zeros(n,m) 空矩阵 n 维单位矩阵 全部元素都为 1 的矩阵 元素服从 0 和 1 之间均匀分布的随面矩阵 元素服从零均值单位方差正态分布的随机矩阵 全部元素都为 0 的矩阵 MATLAB 还提供了很多用于求解线性代数数值问题的矩阵函数。表 1-9 给出了大部分 矩阵函数的简短描述。 表 1-9 矩阵函数 命令 说明 d=eig(A) [v,d]=eig(A) det(A) expm(A) inv(A) logm(A) norm(A) norm(A,1) norm(A,2) norm(A, inf) norm(A,p) norm(A,’fro’) null(A) orth(A) pinv(A) poly(A) schur(A) sqrtm(A) svd(A) TRACE(A) 矩阵特征值 矩阵特征值与特征向量 行列式计算 矩阵求幂 矩阵的逆 矩阵的对数 矩阵和向量的范数 1——范数 2——范数(欧几里德范数) 无穷大范数 P——范数(只对向量) F——范数 零空间 正交化 伪逆 特征多项式 分解 矩阵平方根 奇异值分解 对角元素之和 注意,上述矩阵函数,如矩阵求幂等运算是通过级数求出的,与矩阵元素的点运算结果 不同。若希望求矩阵每个元素的相应函数,如 sin,tan,log 等运算,可以直接采用标量运 算命令,如有 a= 1 2 3 4 如键入 sin(a) 则有