###MATLAB基础二
- 首先产生5阶两位随机整数矩阵A,再产生均值为0.6、方差为0.1的5阶正态分布随机矩阵B,最后验证(A+B)I=IA+BI(I为单位矩阵)。
rand函数:产生(0,1)开区间均匀分布的随机数x。
fix(a+(b-a+1)x):产生[a,b]区间上均匀分布的随机整数。
randn函数:产生均值为0、方差为1的标准正态分布随机数x*。
μ+σx:得到均值为μ、方差为σ²的随机数。
>>A=fix(10+(99-10+1)*rand(5))
A =
83 18 24 22 69
91 35 97 47 13
21 59 96 92 86
92 96 53 81 94
66 96 82 96 71
>> B=0.6+sqrt(0.1)randn(5)
B =
0.9272 0.8809 1.0549 0.5677 0.5905
0.8299 0.2373 0.7028 0.5236 0.5479
0.5040 0.2620 0.3613 0.7009 0.7985
0.6929 0.3440 1.0333 0.6989 0.9457
0.3510 -0.3311 0.0588 0.3265 0.9508
>> C=eye(5)
C =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
>> (A+B)C==CA+BC
ans =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
- 对角阵
(1)提取矩阵的对角线元素
diag(A):提取矩阵A为主对角线元素,产生一个列向量。
diag(A,k):提取矩阵A为第k条对角线元素,产生一个列向量。
(2)构造对角阵
diag(V):以向量V为主对角线元素,产生对角矩阵。
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。
;提取对角阵
>>A =[
83 18 24 22 69;
91 35 97 47 13;
21 59 96 92 86;
92 96 53 81 94;
66 96 82 96 71];
>> diag(A)
ans =
83
35
96
81
71
>> diag(A,2)
ans =
24
47
86
;构造对角阵
>> diag(1:2:6)
ans =
1 0 0
0 3 0
0 0 5
>> diag(1:2:6,3)
ans =
0 0 0 1 0 0
0 0 0 0 3 0
0 0 0 0 0 5
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
- 三角阵
(1)上三角阵
triu(A):提取矩阵A的主对角线及以上的元素。
(2)下三角阵
函数为tril,其用法与triu相同。
>>triu(ones(4),-1)
ans =
1 1 1 1
1 1 1 1
0 1 1 1
0 0 1 1
>> tril(ones(4),-1)
ans =
0 0 0 0
1 0 0 0
1 1 0 0
1 1 1 0
-
矩阵的转置
转置运算符是小数点后面接单引号(.’)。
共轭转置,其运算符是单引号(’),它在转置的基础上还要取每个数的复共轭。
即,复数情况下有区别。 -
矩阵的旋转
rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。
>>A =[
83 18 24 22 69;
91 35 97 47 13;
21 59 96 92 86;
92 96 53 81 94;
66 96 82 96 71]
>> rot90(A)
ans =
69 13 86 94 71
22 47 92 81 96
24 97 96 53 82
18 35 59 96 96
83 91 21 92 66
>> rot90(A,2)
ans =
71 96 82 96 66
94 81 53 96 92
86 92 96 59 21
13 47 97 35 91
69 22 24 18 83
-
矩阵的翻转
对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,以此类推。
fliplr(A):对矩阵A实施左右翻转。
flipud(A):对矩阵A实施上下翻转。 -
矩阵的求逆
对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=I(I为单位矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。
inv(A):求方阵A的逆矩阵。
参考:MOOC《科学计算与MATLAB语言》