几乎所有变量在matlab中都可以视为矩阵(1 x 1元素,1 x n向量,m x n矩阵等),matlab中对矩阵/向量的操作非常多,个人认为对矩阵的操作是体现matlab功底的地方;灵活搭配使用这些基本的函数,能够实现很多功能,下面给出一些matlab中个人常用的对矩阵/向量操作的示例:
一、创建矩阵:
(1)创建全零/全一矩阵:
1 A = zeros(3,2)2 B = ones(3,2)
二、提取矩阵的一部分:
(1)提取矩阵的某个元素:
1 A = [1,2;3,4;5,6];2 a = A(2,1); % 提取矩阵 A 第 2 行第 1 列元素 ,a = 3;
(2)提取某一列(行)矩阵:
提取矩阵某一行:
1 A = [1,2;3,4;5,6]2 a = A(2,:) % 提取矩阵 A 第 2 行所有元素,这里:表示“所有”
同理,提取矩阵某一列:
1 A = [1,2;3,4;5,6]
3 a = A(:,1) % 提取矩阵 A 第 1 列所有元素,这里:表示“所有”
(3)提取奇数/偶数列(行):
提取矩阵奇数行:
1 A = [1,2;3,4;5,6]2 a = A(1:2:end ,:) % 提取矩阵 A 奇数行所有元素,这里:表示“所有”
2为步长
同理,提取矩阵偶数列:
1 B = [1,2,3,4;2,3,4,5;4,5,6,7;5,6,7,8]2 b = B( :,2:2:end) % 提取矩阵 B 偶数列所有元素,这里:表示“所有”,第一个2为起始列,第二个2为步长
三、矩阵的拼接:
1 A = [1,2;3,4;5,6]2 B = [7,8;9,10;11,12]3
4 C = [A,B] % 或 C =[A B],“,”或“ ”表示横向连接5 D = [A;B] % “;”表示纵向连接
四、改变矩阵形状(重构矩阵):
B = reshape(A,m,n); % 把矩阵A变成 m,n的矩阵B ,要求矩阵A、B的元素个数保持一致 = m x n
1 A = [1,2;3,4;5,6]
2 B = reshape(A,2,3) % 把矩阵 3 行 2 列的矩阵A变成 2 行 3 列的矩阵B
五、矩阵逆序
横向逆序:B = fliplr(A);
纵向逆序:B = flipud(A);
示例:
常用:将向量逆序排列:
1 A = [1,2,3,4,5,6,7,8];2 B = fliplr(A) % 横向逆序,B = 8 7 6 5 4 3 2 1
1 A = [1,2;3,4;5,6]
3 B = flipud(A) %纵向逆序4 C = fliplr(A) % 横向逆序
结果:
1 A =
2
3 1 2
4 3 4
5 5 6
6
7
8 B =
9
10 5 6
11 3 4
12 1 2
13
14
15 C =
16
17 2 1
18 4 3
19 6 5
六、矩阵其他小操作
(1)、求矩阵的转置
1 A = A'
(2)、求矩阵的秩:
1 r = rank(A)
(3)、化简成行阶梯形矩阵:
1 B = rref(A)
(4)、求矩阵的逆:
1 inv(A) 或2 A^-1
(5)、求矩阵的迹:
1 t = trace(A)
(6)、求方阵的行列式的值:
1 d = det(A)