在MATLAB中创建矩阵有以下规则:
- 矩阵元素必须在 “[ ]” 内;
- 矩阵的同行元素之间用空格(或 “,”)隔开;
- 矩阵的行与行之间用 “;”(或回车符)隔开;
- 矩阵的元素可以是数值、变量、表达式或函数;
- 矩阵的尺寸不必预先定义。
创建4x5的矩阵
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];
a(2,5) %第2行和第5列中的元素
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4) %矩阵 a 的第4列的元素开始建立一个列向量 v :
a(:,m:n) %还有这种形式,看效果猜用途吧,和py的切片很像
MatLab删除行或列矩阵
可以删除整行或整列的矩阵,只要分配一组空方括号 [ ] 给该行或列。
基本上,[ ] 表示一个空数组。%将某个”区间“赋为空值
在下述例子中我们删除第四行
例子
建立一个3-3的矩阵 m,并把矩阵 m 中的第二行和第三行复制两次,这样就能够建立一个4×3的矩阵。
a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)
也可以
矩阵的加减法
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 中有两种矩阵除法符号:即左除“\” 和右除 “/” 。
注意:这两个操作数的矩阵必须具有相同的行数和列数。
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矩阵的标量操作就是加,减,乘或者除以一个数字矩阵。
添加到具有原始矩阵的每个元素的行和列,相减,乘或除以数相同数量的标量运算会产生一个新的矩阵。
如:
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中矩阵的转置操作是用一个单引号(’)表示的,该操作能够切换一个矩阵的行和列。
a = [ 10 12 23 ; 14 8 6; 27 8 9]
b = a'
串联矩阵
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中如果有两个矩阵 A 和 B ,其中 A 是 mn 矩阵,B 是 np 矩阵,那么他们相乘能够产生一个 m*p 的矩阵 C。
MATLAB矩阵乘法只发生在矩阵 A 的列数的数量等于矩阵 B 的行数的矩阵乘法中,具有相应的列中的第二矩阵乘以第一矩阵中的行的元素。
比如,第(i,j)个位置中的每个元素,在所得的矩阵 C 中,是在第 i 行的第一矩阵具有第二矩阵的第 j 列中的相应元素的产品的元素的总和。
在 MATLAB 中,矩阵乘法使用*运算符。
eg:
a = [ 1 2 3; 2 3 4; 1 2 5]
b = [ 2 1 3 ; 5 0 -2; 2 3 -1]
prod = a * b
矩阵的行列式
MATLAB要计算对应矩阵行列式的值的指令为:d=det(A),该指令返回矩阵 A 的行列式,并把所得值赋给 d。若 A 仅包含整数项,则该结果 d 也是一个整数。
a = [ 1 2 3; 2 3 4; 1 2 5]
det(a)
逆矩阵
MATLAB中矩阵A的逆矩阵被记为 A−1 ,下面的关系成立:
AA−1 = A−1A = 1
MATLAB中不是每个矩阵都有逆矩阵的,比如一个矩阵的行列式是零的话,则矩阵的逆就不存在,这样的矩阵是奇异的。
MATLAB中,逆矩阵的计算使用 inv 函数:逆矩阵A是inv(A)
eg: