向量的等差元素法
1. “:”生成法
向量vector=vec0:n:vecn
vec0为首位元素, vecn为未位元素,n为步长。
>> vector=0:0.1:1
vector =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
2. “ linspace ”函数生成法
“ linspace ”为线性等分向量函数,格式为:
vec=linspace(vec0,vecn,n)。(n为元素的个数)
>> vec=linspace(0,10,10)
vec =
0 1.1111 2.2222 3.3333 4.4444 5.5556 6.6667 7.7778 8.8889 10.0000
建立矩阵
直接输入法
在矩阵中是方括号创建,圆括号调用。
将矩阵的元素用方括号括起来,按照矩阵行的顺序输入各个元素,
同一行的元素之间用逗号(空格)来分隔,
不同行之间用分号(回车)来分隔。
>> b=[1 2 3
4 5 6
7 8 9]
b =
1 2 3
4 5 6
7 8 9
>> b=[1 2 3 ;4 5 6;7 8 9]
b =
1 2 3
4 5 6
7 8 9
外部文件读取法
特殊矩阵函数生成法
1. 单位矩阵
eye(m,n)
第一个参数代表行数,第二个参数代表列数
>> eye(3,4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
eye(m)
若只有一个参数,则代表行列相同
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>>
2. 零矩阵
zeros(m,n)、zeros(m)与eye类似
>> zeros(6,4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>>
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
3. 一矩阵
ones(m,n)、ones(m)同上
>> ones(2,3)
ans =
1 1 1
1 1 1
>> ones(2)
ans =
1 1
1 1
4. 生成对角阵
>> a=[1,2,3];
>> diag(a)
ans =
1 0 0
0 2 0
0 0 3
5. 随机矩阵
rand(m,n)、rand(m)生成的元素为0-1的随机数
>> rand(5,4)
ans =
0.8147 0.0975 0.1576 0.1419
0.9058 0.2785 0.9706 0.4218
0.1270 0.5469 0.9572 0.9157
0.9134 0.9575 0.4854 0.7922
0.6324 0.9649 0.8003 0.9595
>> rand(4)
ans =
0.6557 0.6787 0.6555 0.2769
0.0357 0.7577 0.1712 0.0462
0.8491 0.7431 0.7060 0.0971
0.9340 0.3922 0.0318 0.8235
6. 生成正态分布随机举矩阵
randn(m,n)、randn(m)
>> randn(5,4)
ans =
0.3252 -0.2414 -0.1649 0.0774
-0.7549 0.3192 0.6277 -1.2141
1.3703 0.3129 1.0933 -1.1135
-1.7115 -0.8649 1.1093 -0.0068
-0.1022 -0.0301 -0.8637 1.532
>> randn(5)
ans =
-0.7697 0.0326 -1.4916 0.7481 -1.4224
0.3714 0.5525 -0.7423 -0.1924 0.4882
-0.2256 1.1006 -1.0616 0.8886 -0.1774
1.1174 1.5442 2.3505 -0.7648 -0.1961
-1.0891 0.0859 -0.6156 -1.4023 1.4193
7. 生成n阶随机幻方
magic(n)
各行各列以及主副对角线之和相等。
>> magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
矩阵元素的操作
矩阵元素的存取
矩阵中的元素可通过下标来存取,
如,a(i,j)表示a中第i行第j列的元素。
a=[1 2 3;10 20 30;4 5 6]
b=a(1,2)+a(2,3)
a =
1 2 3
10 20 30
4 5 6
b =
32
因矩阵元素在内存中是按列存储的,
故还可通过单变量下标来访问矩阵元素。
>> a=[1 2 3;10 20 30;4 5 6]
a =
1 2 3
10 20 30
4 5 6
c =
32
利用下标可修改矩阵中的个别元素。
求矩阵的相关值
1. 求矩阵的逆
inv()
>> a=[1 2 3;4 5 2;3 6 7];
>> inv(a)
ans =
3.8333 0.6667 -1.8333
-3.6667 -0.3333 1.6667
1.5000 -0.0000 -0.5000
2. 求矩阵的转秩
A’
>> a=[1 2 3;4 5 2;3 6 7];
>> a'
ans =
1 4 3
2 5 6
3 2 7
3. ‘.*’与‘ *’的区别
所有带点的都是矩阵的对应项相乘;
>> a=[1 2 3;4 5 6];
>> b=2*a;
>> a*b'
ans =
28 64
64 154
>> a.*b
ans =
2 8 18
32 50 72
4. 寻找符合条件矩阵元素的索引
[m,n]=find(a>x)
x为一常量,返回所有符合条件的索引。
>> 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
>> [m,n]=find(a>20)
m =
2
1
5
4
3
n =
1
2
3
4
5
5.求矩阵的行列式
det(A)
A为一行列式
>> a=[1,3,5];
>> A=diag(a)
A =
1 0 0
0 3 0
0 0 5
>> det(A)
ans =
15
6. 求矩阵的迹
范数是矩阵主对角线元素之和
trace(A)
>> a=[1,3,5];
>> A=diag(a)
A =
1 0 0
0 3 0
0 0 5
>> trace(A)
ans =
9
7. 求矩阵的秩
rank(A)
>> a=[1,3,5];
>> A=diag(a)
A =
1 0 0
0 3 0
0 0 5
rank(A)
ans =
3
8. 求矩阵的范数
norm(A)
>> a=[1,3,5];
>> A=diag(a)
A =
1 0 0
0 3 0
0 0 5
>> norm(A)
ans =
5
9. 求矩阵的特征值极特征向量
[V,D]=eig(A)
>> A=[-29 6 18;20 5 12;-8 8 5]
A =
-29 6 18
20 5 12
-8 8 5
>> [V,D]=eig(A)
V =
0.7130 0.2803 0.2733
-0.6084 -0.7867 0.8725
0.3487 0.5501 0.4050
D =
-25.3169 0 0
0 -10.5182 0
0 0 16.8351