MATLAB学习笔记(四)矩阵
>> a=[1 2 3;4 5 6];
>> a
a =
1 2 3
4 5 6
矩阵转置
>> a'
ans =
1 4
2 5
3 6
矩阵大小
>> size(a)
ans =
2 3
也可以
>> length(a)
ans =
3
>> length(a')
ans =
3
矩阵选取
“:” 表示一行或一列全部元素
>> a(2,2)
ans =
5
>> a(1,:)
ans =
1 2 3
>> a(1,:)=9
a =
9 9 9
4 5 6
矩阵翻转
命令 | 解释 |
---|---|
flipud(a) | 矩阵上下翻转 |
fliplr(a) | 矩阵左右翻转 |
rot(a) | 矩阵逆时针翻转90度 |
diag(a) | 提取矩阵对角元素,返回列向量 |
diag(vector) | 以列向量作为对角元素创建对角矩阵 |
tril(a) | 提取下三角矩阵 |
triu(a) | 提取上三角矩阵 |
示例
>> a=[1 2 3;4 5 6;7 8 9];
>> flipud(a)
ans =
7 8 9
4 5 6
1 2 3
>> fliplr(a)
ans =
3 2 1
6 5 4
9 8 7
>> rot90(a)
ans =
3 6 9
2 5 8
1 4 7
>> v=diag(a)
v =
1
5
9
>> diag(v)
ans =
1 0 0
0 5 0
0 0 9
>> tril(a)
ans =
1 0 0
4 5 0
7 8 9
>> triu(a)
ans =
1 2 3
0 5 6
0 0 9
矩阵运算
矩阵与标量
>> a
a =
1 2 3
4 5 6
7 8 9
>> a+1
ans =
2 3 4
5 6 7
8 9 10
>> a*3
ans =
3 6 9
12 15 18
21 24 27
>> a/3
ans =
1/3 2/3 1
4/3 5/3 2
7/3 8/3 3
矩阵与矩阵
加法(减法同)
>> a=[1 2 3;4 5 6;7 8 9];
>> b=[3 2 1;6 5 4];
>> c=[1 3 5];
>> a+b
矩阵维度必须一致。
>> a+c
ans =
2 5 8
5 8 11
8 11 14
乘法
>> d=[3;2;1]
d =
3
2
1
>> a*d
ans =
10
28
46
>> a*b
错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要
执行按元素相乘,请使用 '.*'。
除法
左除:a\b=
a
−
1
b
a^{-1}b
a−1b
右除:a/b=
a
b
−
1
ab^{-1}
ab−1
>> a=[1 2;3 4];
>> b=[5 6;7 8];
>> a\b
ans =
-3 -4
4 5
>> a/b
ans =
3 -2
2 -1
矩阵的点运算
简单来说,点运算就是对于矩阵的每一个元素运算。
>> a=[1 2;3 4];
>> b=[2 1;4 3];
>> a*b
ans =
10 7
22 15
>> a.*b
ans =
2 2
12 12
>> a^2
ans =
7 10
15 22
>> a.^2
ans =
1 4
9 16
>> 2.^a
ans =
2 4
8 16
矩阵函数
有时间再补。