MATLAB 学习笔记(3)MATLAB 矩阵的进阶操作
目录
MATLAB 矩阵标量操作
标量指的是只有大小没有方向的数,与之相对应的是矢量,矢量是既有大小,也有方向。
MATLAB矩阵的标量操作就是加,减,乘或者除以一个数字矩阵。
添加到具有原始矩阵的每个元素的行和列,相减,乘或除以数相同数量的标量运算会产生一个新的矩阵。
实际例子
在MATLAB中建立一个脚本文件,代码如下:
a = [ 10 12 23 ; 14 8 6; 27 8 9]; b = 2; c = a + b d = a - b e = a * b f = a / b
运行该指令,显示结果:
c = 12 14 25 16 10 8 29 10 11 d = 8 10 21 12 6 4 25 6 7 e = 20 24 46 28 16 12 54 16 18 f = 5.0000 6.0000 11.5000 7.0000 4.0000 3.0000 13.5000 4.0000 4.5000
看到结果可知,矩阵与标量相加、减、乘、除操作,就是对矩阵中的每个元素都加、减、乘、除相应的标量数值。
MATLAB 矩阵的转置
学过线性代数就会知道,矩阵的转置操作很简单,就是将原矩阵的行变成列,且一一对应变换,即原矩阵的第一行变成转置后矩阵的第一列,以此类推。
MATLAB中矩阵的转置操作是用一个单引号()表示的,该操作能够切换一个矩阵的行和列。
实际例子
在MATLAB中建立一个脚本文件,代码如下:
a = [ 10 12 23 ; 14 8 6; 27 8 9] b = a
运行该指令,显示以下结果:
a = 10 12 23 14 8 6 27 8 9 b = 10 14 27 12 8 8 23 6 9
MATLAB 串联矩阵
MATLAB中使用一对中括号“[ ]”,能够将两个矩阵连接起来,创建出一个新矩阵。
在线代中也叫合并矩阵,可能这样更好理解。
MATLAB串联矩阵的两种类型:
-
水平串联:要进行连接的两个矩阵是使用逗号 “,” 分隔开的。 垂直串联:要进行连接的两个矩阵是使用分号 “;” 分隔开的。
可以这么理解,在 MATLAB 中表示矩阵,列与列之间用逗号隔开,列与列之间是水平排列的,行与行之间用分号隔开,行与行之间是垂直排列的。
实际例子
在MATLAB中建立一个脚本文件,代码如下:
a = [ 10 12 23 ; 14 8 6; 27 8 9] b = [ 12 31 45 ; 8 0 -9; 45 2 11] c = [a, b] d = [a; b]
运行该文件,显示结果:
a = 10 12 23 14 8 6 27 8 9 b = 12 31 45 8 0 -9 45 2 11 c = 10 12 23 12 31 45 14 8 6 8 0 -9 27 8 9 45 2 11 d = 10 12 23 14 8 6 27 8 9 12 31 45 8 0 -9 45 2 11
MATLAB 矩阵的行列式
MATLAB要计算对应矩阵行列式的值的指令为:d=det(A),该指令返回矩阵 A 的行列式,并把所得值赋给 d。若 A 仅包含整数项,则该结果 d 也是一个整数。
在MATLAB中建立一个脚本文件,代码如下:
a = [ 1 2 3; 2 3 4; 1 2 5] det(a)
运行该文件,显示以下结果:
a = 1 2 3 2 3 4 1 2 5 ans = -2
MATLAB 逆矩阵
MATLAB中矩阵A的逆矩阵被记为 A^(−1) ,下面的关系成立:
AA−1 = A−1A = 1
MATLAB中不是每个矩阵都有逆矩阵的,比如一个矩阵的行列式是零的话,则矩阵的逆就不存在,这样的矩阵是奇异的。
MATLAB中,逆矩阵的计算使用 inv 函数:逆矩阵A是inv(A).
详细例子
在MATLAB中建立一个脚本文件,并输入下面的代码:
a = [ 1 2 3; 2 3 4; 1 2 5] inv(a)
运行该指令,显示以下结果:
a = 1 2 3 2 3 4 1 2 5 ans = -3.5000 2.0000 0.5000 3.0000 -1.0000 -1.0000 -0.5000 0 0.5000