在MATLAB中创建矩阵有以下规则:
下面的例子中我们创建了一个3×4的矩阵:
c=[1:4;2:5;3:6]
引用矩阵的某一元素
若要引用第m行第n列的元素,则输入c(m,n)。
比如引用三行四列的元素:
c(3,4)
ans =
6
引用矩阵的部分元素
我们可以引用一个矩阵中的子矩阵,对于矩阵a而言,可以选取第m行到第n行在第p列到第q列的子矩阵。只需输入a(m:n,p:q)。
下面是一个例子,
a =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
>> f=a(1:2,3:5)
f =
3 4 5
4 5 6
事实上,还可以有更一般引用的形式,为更好地理解,引用第一行和第三行,以及第二列和第五列的矩阵如下:
f=a(1:2:3,2:3:5)
f =
2 5
4 7
删除行或列矩阵
可以删除整行或整列的矩阵,只要分配一组空方括号 [ ] 给该行或列。
基本上,[ ] 表示一个空数组。
有了上面的引用元素的例子和介绍,这个问题就很好解决了。
下面我们删除a的第二行和第三行:
a([2,3],:)=[]
a =
1 2 3 4 5
4 5 6 7 8
值得注意的是,删除的命令本身就是在赋值,所以不能再将它赋给另一个变量。
矩阵的加减法
这里不再举例说明,矩阵加减法只要保证维度一致即可。
矩阵除法
MATLAB 中有两种矩阵除法符号:即左除“\” 和右除 “/”
运算符 | 名称 | 说明 |
/(向右倒称为右除) | 右除 | AB=C A=C/B |
\(向左倒称为左除) | 左除 | AB=C B=A\C |
B\A 就是对应线性方程B*X=A 的解。
矩阵标量操作
MATLAB矩阵的标量操作就是加,减,乘或者除以一个数字矩阵。
添加到具有原始矩阵的每个元素的行和列,相减,乘或除以数相同数量的标量运算会产生一个新的矩阵。
举一个例子:
a=[12 43 4;3 6 9;7 36 15];
b=3;
c=a+b
d=a-b
e=b*a
f=a/b
c =
15 46 7
6 9 12
10 39 18
d =
9 40 1
0 3 6
4 33 12
e =
36 129 12
9 18 27
21 108 45
f =
4.0000 14.3333 1.3333
1.0000 2.0000 3.0000
2.3333 12.0000 5.0000
矩阵的转置
MATLAB中矩阵的转置操作是用一个单引号(')表示的,该操作能够切换一个矩阵的行和列。
串联矩阵
MATLAB中使用一对中括号“[ ]”,能够将两个矩阵连接起来,创建出一个新矩阵。
a = [ 10 15 53 ; 73 8 6; 17 8 9];
b = [ 12 31 55 ; 7 0 -9; 65 4 61];
c=[a,b]
d=[a;b]
c =
10 15 53 12 31 55
73 8 6 7 0 -9
17 8 9 65 4 61
d =
10 15 53
73 8 6
17 8 9
12 31 55
7 0 -9
65 4 61
矩阵乘法
乘法需要保证前一个矩阵的列指标和后一个矩阵的行指标相同。
a = [ 10 15 53 ; 73 8 6; 17 8 9];
b = [ 12 31 55 ; 7 0 -9; 65 4 61];
a*b
ans =
3670 522 3648
1322 2287 4309
845 563 1412
矩阵的行列式
MATLAB要计算对应矩阵行列式的值的指令为:d=det(A),该指令返回矩阵 A 的行列式,并把所得值赋给 d。若 A 仅包含整数项,则该结果 d 也是一个整数。
a = [ 7 1 3 ; 7 4 6; 1 8 9];
det(a)
ans =
15.0000
逆矩阵
逆矩阵的计算使用 inv 函数:逆矩阵A是inv(A)。
a = [ 7 1 3 ; 7 4 6; 1 8 9];
format rat
inv(a)
ans =
-4/5 1 -2/5
-19/5 4 -7/5
52/15 -11/3 7/5