目录
MATLAB矩阵
MATLAB引用一个矩阵的元素
MATLAB删除行或列矩阵
详细例子
MATLAB矩阵的加法和减法
详细例子
MATLAB除法(左,右)矩阵
详细例子
MATLAB矩阵标量操作
详细例子
MATLAB矩阵的转置
详细例子
MATLAB串联矩阵
详细例子
MATLAB矩阵乘法
详细例子
MATLAB矩阵的行列式
详细例子
MATLAB逆矩阵
详细例子
MATLAB矩阵
在MATLAB中创建矩阵有以下规则:
- 矩阵元素必须在 “[ ]” 内;
- 矩阵的同行元素之间用空格(或 “,”)隔开;
- 矩阵的行与行之间用 “;”(或回车符)隔开;
- 矩阵的元素可以是数值、变量、表达式或函数;
- 矩阵的尺寸不必预先定义。
下面的例子中我们创建了一个4×5的矩阵:
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]
MATLAB 将执行上述语句,并返回以下结果:
a = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
MATLAB引用一个矩阵的元素
如果要引用 mth 行和 nth 列的一个元素,写法如下:
mx(m, n);
例如,参阅第2行和第5列中的元素的矩阵,所创建的最后一节中,我们输入:
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(2,5)
MATLAB将执行上述语句,并返回结果:
ans = 6
引用m列中的所有元素,我们A型(m)。
接下来我们要从矩阵 a 的第4列的元素开始建立一个列向量 v :
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; v = a(:,4)
MATLAB将执行上述语句,并返回结果:
v = 4 5 6 7
当然也可以选择第 n 列的 m 个元素,对于这一点,写法如下:
a(:,m:n)
我们建立一个较小的矩阵中的元素,第二和第三列:
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(:, 2:3)
MATLAB将执行上述语句,并返回以下结果:
ans = 2 3 3 4 4 5 5 6
用相同的方式,则可以建立一个子矩阵的一个子部分的矩阵。
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(:, 2:3)
MATLAB将执行上述语句,并返回结果:
ans = 2 3 3 4 4 5 5 6
用相同的方式,则可以创建一个子矩阵的一个子部分的矩阵。
例如,让我们创建一个子矩阵内部子部分的:
3 4 5 4 5 6
下述写法可以达到该目的:
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; sa = a(2:3,2:4)
MATLAB将执行上述语句,并返回结果:
sa = 3 4 5 4 5 6
MATLAB删除行或列矩阵
可以删除整行或整列的矩阵,只要分配一组空方括号 [ ] 给该行或列。
基本上,[ ] 表示一个空数组。
在下述例子中我们删除第四行:
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a( 4 , : ) = []
MATLAB将执行上述语句,并返回结果:
a = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7
接下来,我们删除第五列:
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]; a(: , 5)=[]
MATLAB将执行上述语句,并返回结果:
a = 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7
详细例子
在本例中,我们会建立一个3-3的矩阵 m,并把矩阵 m 中的第二行和第三行复制两次,这样就能够建立一个4×3的矩阵。
在MATLAB中建立一个脚本文件,代码如下:
a = [ 1 2 3 ; 4 5 6; 7 8 9]; new_mat = a([2,3,2,3],:)
运行该文件,显示结果:
new_mat = 4 5 6 7 8 9 4 5 6 7 8 9
MATLAB矩阵的加法和减法
MATLAB矩阵可以有加法和减法的操作,但是两个操作数的矩阵必须具有相同的行数和列数。
详细例子
在MATLAB中建立一个脚本文件,代码如下:
a = [ 1 2 3 ; 4 5 6; 7 8 9]; b = [ 7 5 6 ; 2 0 8; 5 7 1]; c = a + b d = a - b
运行该文件,显示结果:
c = 8 7 9 6 5 14 12 15 10 d = -6 -3 -3 2 5 -2 2 1 8
MATLAB除法(左,右)矩阵
MATLAB 中有两种矩阵除法符号:即左除“\” 和右除 “/” 。
注意:这两个操作数的矩阵必须具有相同的行数和列数。
详细例子
在MATLAB中建立一个脚本文件,代码如下:
a = [ 1 2 3 ; 4 5 6; 7 8 9]; b = [ 7 5 6 ; 2 0 8; 5 7 1]; c = a / b d = a \ b
运行该文件,显示结果:
c = -0.52542 0.68644 0.66102 -0.42373 0.94068 1.01695 -0.32203 1.19492 1.37288 d = -3.27778 -1.05556 -4.86111 -0.11111 0.11111 -0.27778 3.05556 1.27778 4.30556
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中建立一个脚本文件,代码如下:
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中如果有两个矩阵 A 和 B ,其中 A 是 m*n 矩阵,B 是 n*p 矩阵,那么他们相乘能够产生一个 m*p 的矩阵 C。
MATLAB矩阵乘法只发生在矩阵 A 的列数的数量等于矩阵 B 的行数的矩阵乘法中,具有相应的列中的第二矩阵乘以第一矩阵中的行的元素。
比如,第(i,j)个位置中的每个元素,在所得的矩阵 C 中,是在第 i 行的第一矩阵具有第二矩阵的第 j 列中的相应元素的产品的元素的总和。
在 MATLAB 中,矩阵乘法使用*运算符。
详细例子
在MATLAB中建立一个脚本文件,代码如下:
a = [ 1 2 3; 2 3 4; 1 2 5] b = [ 2 1 3 ; 5 0 -2; 2 3 -1] prod = a * b
运行该文件,显示以下结果:
a = 1 2 3 2 3 4 1 2 5 b = 2 1 3 5 0 -2 2 3 -1 prod = 18 10 -4 27 14 -4 22 16 -6
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