1.数组的表示,冒号的用法
>> x=1:3:100
x =
1 至 23 列
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67
24 至 34 列
70 73 76 79 82 85 88 91 94 97 100
>> A(1,:)=1:5
A =
1 2 3 4 5
>> A(2,:)=6:10
A =
1 2 3 4 5
6 7 8 9 10
>> A(3,:)=11:15
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
>> s=0;
>> for i=1:100
s=s+i;
end,s
s =
5050
2.线性间隔向量
>> x=linspace(1,5,20)
x =
1 至 13 列
1.0000 1.2105 1.4211 1.6316 1.8421 2.0526 2.2632 2.4737 2.6842 2.8947 3.1053 3.3158 3.5263
14 至 20 列
3.7368 3.9474 4.1579 4.3684 4.5789 4.7895 5.0000
3.对数化间隔向量
>> x=logspace(1,2,12)
x =
10.0000 12.3285 15.1991 18.7382 23.1013 28.4804 35.1119 43.2876 53.3670 65.7933 81.1131 100.0000
4.显示格式的设置
>> format short
>> pi
ans =
3.1416
>> format long
>> pi
ans =
3.141592653589793
>> format rat
>> pi
ans =
355/113
5.矩阵的加法与减法
>> A=[1,2,3;4,5,6;7,8,10]
A =
1 2 3
4 5 6
7 8 10
>> B=[1,3,5;7,9,11;13,15,16]
B =
1 3 5
7 9 11
13 15 16
>> B-A
ans =
0 1 2
3 4 5
6 7 6
>> A+B
ans =
2 5 8
11 14 17
20 23 26
6.数组的乘法与除法
>> A=[1 2 3;2 4 6;3 6 12]
A =
1 2 3
2 4 6
3 6 12
>> B=[1 2 3]
B =
1 2 3
>> B=[B;B;B]
B =
1 2 3
1 2 3
1 2 3
>> A.*B %矩阵A、B的数组积为矩阵对应元素的相乘,它与矩阵乘法是不同的,注意在数组乘法的乘号*前加了句号“.”
ans =
1 4 9
2 8 18
3 12 36
>> A*B %矩阵A、B的积
ans =
6 12 18
12 24 36
21 42 63
>> A./B
ans =
1 1 1
2 2 2
3 3 4
>> A/B
警告: 矩阵为奇异工作精度。
ans =
0/0 0/0 0/0
0/0 0/0 0/0
0/0 0/0 0/0
7.矩阵的乘法
>> A=[1 2 3;4 5 6;7 8 10]
A =
1 2 3
4 5 6
7 8 10
>> B=[1 3 5;7 9 11;13 15 17]
B =
1 3 5
7 9 11
13 15 17
>> C=A*B
C =
54 66 78
117 147 177
193 243 293
8.矩阵的左除
>> A=[1 2 3;4 5 6;7 8 10]
A =
1 2 3
4 5 6
7 8 10
>> C=[54 66 75;117 147 171;193 243 283]
C =
54 66 75
117 147 171
193 243 283
>> A\C
ans =
1 3 5
7 9 11
13 15 16
9.矩阵的右除
>> C=[54 66 75;117 147 171;193 243 283]
C =
54 66 75
117 147 171
193 243 283
>> B=[1 3 5;7 9 11;13 15 16]
B =
1 3 5
7 9 11
13 15 16
>> C/B
ans =
1 2 3
4 5 6
7 8 10
10.方阵的行列式
>> A=[1 2 3;4 5 6;7 8 10]
A =
1 2 3
4 5 6
7 8 10
>> det(A)
ans =
-3
11.矩阵的转置
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A'
ans =
1 4 7
2 5 8
3 6 9
12.单位矩阵
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
13.全1矩阵
>> ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
14.零矩阵
>> zeros(4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
教材里这个地方有错误,若为方阵,则以**zeros(n)**表示。
15.魔方矩阵
>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> sum(A,1) %检查A的各列元素之和
ans =
34 34 34 34
>> sum(A,2) %检查A的各行元素之和
ans =
34
34
34
34
>> trace(A) %检查A的主对角线元素之和
ans =
34
>> trace(fliplr(A)) %检查A的副对角线元素之和
ans =
34
16.Pascal矩阵
对Cholesky的解释:X矩阵是对称正定的,则Cholesky分解将矩阵分解成一个下三角形矩阵(R’)和上三角形矩阵( R )的乘积,X=R’ R。
>> pascal(5)
ans =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
>> A1=pascal(4,1)
A1 =
1 0 0 0
1 -1 0 0
1 -2 1 0
1 -3 3 -1
>> A2=pascal(4,2)
A2 =
-1 -1 -1 -1
3 2 1 0
-3 -1 0 0
1 0 0 0
>> B=-fliplr(A1')
B =
-1 -1 -1 -1
3 2 1 0
-3 -1 0 0
1 0 0 0
17.Hilbert矩阵
>> hilb(4)
ans =
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6
1/4 1/5 1/6 1/7
>> format short
>> A=hilb(4)
A =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
18.均匀分布的随机矩阵
>> A1=rand(4)
A1 =
0.8147 0.6324 0.9575 0.9572
0.9058 0.0975 0.9649 0.4854
0.1270 0.2785 0.1576 0.8003
0.9134 0.5469 0.9706 0.1419
>> A2=rand(4)
A2 =
0.4218 0.6557 0.6787 0.6555
0.9157 0.0357 0.7577 0.1712
0.7922 0.8491 0.7431 0.7060
0.9595 0.9340 0.3922 0.0318
19.正态分布的随机矩阵
>> randn(4)
ans =
-1.0689 0.3252 -0.1022 -0.8649
-0.8095 -0.7549 -0.2414 -0.0301
-2.9443 1.3703 0.3192 -0.1649
1.4384 -1.7115 0.3129 0.6277
20.矩阵的大小
>> A=[1 1 1 1 1;1 2 3 4 5;1 3 6 10 15]
A =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
>> d=size(A)
d =
3 5
>> A(:,:,1)=magic(3),A(:,:,2)=pascal(3),A(:,:,3)=zeros(3),A(:,:,4)=ones(3)
A =
8 1 6
3 5 7
4 9 2
A(:,:,1) =
8 1 6
3 5 7
4 9 2
A(:,:,2) =
1 1 1
1 2 3
1 3 6
A(:,:,1) =
8 1 6
3 5 7
4 9 2
A(:,:,2) =
1 1 1
1 2 3
1 3 6
A(:,:,3) =
0 0 0
0 0 0
0 0 0
A(:,:,1) =
8 1 6
3 5 7
4 9 2
A(:,:,2) =
1 1 1
1 2 3
1 3 6
A(:,:,3) =
0 0 0
0 0 0
0 0 0
A(:,:,4) =
1 1 1
1 1 1
1 1 1
>> size(A)
ans =
3 3 4
21.矩阵的秩
>> A=[1 2 3;4 5 6;7 8 10]
A =
1 2 3
4 5 6
7 8 10
>> rank(A)
ans =
3
22.向量的范数
>> v=[1 2 3 4]
v =
1 2 3 4
>> norm(v,1)
ans =
10
>> norm(v,2)
ans =
5.4772
>> norm(v,+inf)
ans =
4
>> norm(v,-inf)
ans =
1
23.矩阵的范数
>> A=[1 2 3 4;2 3 5 8;1 3 5 7;3 4 7 11]
A =
1 2 3 4
2 3 5 8
1 3 5 7
3 4 7 11
>> A1=norm(A,1)
A1 =
30
>> max(sum(A))
ans =
30
>> Ai=norm(A,inf)
Ai =
25
>> max(sum(A'))
ans =
25
>> A2=norm(A,2)
A2 =
20.2435
>> max(svd(A))
ans =
20.2435
>> Af=norm(A,'fro')
Af =
20.2731
>> sum(abs(A(1:16)).^2).^(1/2)
ans =
20.2731
>> sqrt(sum(diag(A'*A)))
ans =
20.2731
24.矩阵的条件数
>> A=[1 3 4 5;1 1 3 4;1 1 1 3;1 1 1 1]
A =
1 3 4 5
1 1 3 4
1 1 1 3
1 1 1 1
>> inv(A)
ans =
-0.5000 0.2500 0.1250 1.1250
0.5000 -0.7500 0.1250 0.1250
0 0.5000 -0.7500 0.2500
0 0 0.5000 -0.5000
>> C1=norm(A)*norm(ans)
C1 =
13.9424
>> C=cond(A)
C =
13.9424
>> s=svd(A)
s =
9.5410
1.2253
1.0000
0.6843
>> C2=max(s)/min(s)
C2 =
13.9424
25.矩阵的奇异值和奇异值分解
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> svd(A)
ans =
16.8481
1.0684
0.0000
>> [u,s,a]=svd(A)
u =
-0.2148 0.8872 0.4082
-0.5206 0.2496 -0.8165
-0.8263 -0.3879 0.4082
s =
16.8481 0 0
0 1.0684 0
0 0 0.0000
a =
-0.4797 -0.7767 0.4082
-0.5724 -0.0757 -0.8165
-0.6651 0.6253 0.4082
>> iu=inv(u) %核对矩阵u是否为酉矩阵
iu =
-0.2148 -0.5206 -0.8263
0.8872 0.2496 -0.3879
0.4082 -0.8165 0.4082
>> u'
ans =
-0.2148 -0.5206 -0.8263
0.8872 0.2496 -0.3879
0.4082 -0.8165 0.4082
>> iv=inv(a) %核对矩阵v是否为酉矩阵
iv =
-0.4797 -0.5724 -0.6651
-0.7767 -0.0757 0.6253
0.4082 -0.8165 0.4082
>> a'
ans =
-0.4797 -0.5724 -0.6651
-0.7767 -0.0757 0.6253
0.4082 -0.8165 0.4082
26.矩阵的特征值和特征向量
>> A=[-6 -11 -6;1 0 0;0 1 0]
A =
-6 -11 -6
1 0 0
0 1 0
>> syms lambda
>> det(A-lambda*eye(3))
ans =
- lambda^3 - 6*lambda^2 - 11*lambda - 6
>> P=sym2poly(ans)
P =
-1 -6 -11 -6
>> roots(P)
ans =
-3.0000
-2.0000
-1.0000
>> d=eig(A) %eig为matlab求解特征值函数
d =
-3.0000
-2.0000
-1.0000
27.矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90°操作
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> fliplr(A)
ans =
6 1 8
7 5 3
2 9 4
>> A=pascal(3)
A =
1 1 1
1 2 3
1 3 6
>> flipud(A)
ans =
1 3 6
1 2 3
1 1 1
>> A=[1 2 3 4;5 6 7 8]
A =
1 2 3 4
5 6 7 8
>> rot90(A)
ans =
4 8
3 7
2 6
1 5
28.对角矩阵
>> v=[1 2 3 4]
v =
1 2 3 4
>> diag(v)
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
>> diag(v,1)
ans =
0 1 0 0 0
0 0 2 0 0
0 0 0 3 0
0 0 0 0 4
0 0 0 0 0
>> diag(v,-1)
ans =
0 0 0 0 0
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
>> u=[2 3 5 8 11];
>> X=vander(u)
X =
16 8 4 2 1
81 27 9 3 1
625 125 25 5 1
4096 512 64 8 1
14641 1331 121 11 1
>> v=diag(X)'
v =
16 27 25 8 1
>> v1=diag(X,1)'
v1 =
8 9 5 1
>> vn1=diag(X,-1)'
vn1 =
81 125 64 11
29.矩阵的重组1
>> A=[1 2 3 4]
A =
1 2 3 4
>> B=pascal(4)
B =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
>> B(1,:)=A
B =
1 2 3 4
1 2 3 4
1 3 6 10
1 4 10 20
>> C=pascal(4)
C =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
>> C(:,1)=A'
C =
1 1 1 1
2 2 3 4
3 3 6 10
4 4 10 20
30.矩阵的重组2
>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> c=A(1,:)
c =
16 2 3 13
>> A(1,:)=A(4,:)
A =
4 14 15 1
5 11 10 8
9 7 6 12
4 14 15 1
>> A(4,:)=c
A =
4 14 15 1
5 11 10 8
9 7 6 12
16 2 3 13
31.矩阵的重组3
>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> B=A(1:4,1:4)
B =
17 24 1 8
23 5 7 14
4 6 13 20
10 12 19 21
>> A=[1 3 5 7;2 3 5 8;2 4 6 8;3 4 7 11]
A =
1 3 5 7
2 3 5 8
2 4 6 8
3 4 7 11
>> A(2,:)=[],A(:,2)=[]
A =
1 3 5 7
2 4 6 8
3 4 7 11
A =
1 5 7
2 6 8
3 7 11
32.矩阵的重组4
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> B=A(:)'
B =
8 3 4 1 5 9 6 7 2
33.矩阵的重组5
>> format rat
>> A=hilb(4)
A =
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6
1/4 1/5 1/6 1/7
>> B=reshape(A,2,8)
B =
1 1/3 1/2 1/4 1/3 1/5 1/4 1/6
1/2 1/4 1/3 1/5 1/4 1/6 1/5 1/7