Matlab(三)
一.基本数学运算
1.矩阵的代数运算
前提:A为n X m矩阵(n =m时A为方阵)
(1).矩阵转置(若元素有复数时进行Hermit转置):
命令: B = A’ 或 B = A.’
Trial>> A = [1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
Trial>> B = A'
B =
1 4 7
2 5 8
3 6 9
(2)加减法运算
若A和B维数相同,则相应元素进行相加减,否则会产生错误提示信息
Trial>> C = A + B
C =
2 6 10
6 10 14
10 14 18
(3)矩阵乘法
若A的列(行)和B行(列)是相同的,则称矩阵A和B是可乘的或A与B矩阵维数是相容的,则这样的矩阵能够
C = A *B否则报错
Trial>> A = [1,2,3;4,5,6];
Trial>> B = [7,8;9,0;10,11];
Trial>> C = A * B
C =
55 41
133 98
(4)矩阵的左除
MATLAB里’\’表示左除 A\B表示AX = B解X,若A为非奇异方阵即([A] != 0)
X = A^(-1)B
如果A矩阵不是方阵,将采用最小二乘解法求出矩阵X
Trial>> A = [1,2;3,4];
Trial>> B = [5,6;7,8];
Trial>> C = B \ A
C =
5.0000 4.0000
-4.0000 -3.0000
//最小二乘法求解
Trial>> D = [1,2,3;4,5,6];
Trial>> E = [6,5,4;3,2,1];
Trial>> F = E \ D
F =
2.5000 3.0000 3.5000
0 0 0
-3.5000 -4.0000 -4.5000
(5)矩阵的右除
B / A: ‘/’表示矩阵的右除XA = B解X
B/A = (A’\B’)
Trial>> A = [1,2;3,4];
Trial>> B = [5,6;7,8];
Trial>> C = B/A
C =
-1.0000 2.0000
-2.0000 3.0000
Trial>> D = A'\B'
D =
-1.0000 -2.0000
2.0000 3.0000
(6)矩阵翻转
B = fliplr(A) 将矩阵A左右翻转赋B
B = flipud(A)将矩阵A上下翻转赋给B
B = rot90(A) 将矩阵A逆时针转90度赋给B
Trial>> A = [1,2,3;4,5,6];
Trial>> B = fliplr(A)
B =
3 2 1
6 5 4
Trial>> C = flipud(B)
C =
6 5 4
3 2 1
Trial>> D = rot90(C)
D =
4 1
5 2
6 3
(7)矩阵乘方运算
在MATLAB统一表示为:F = A ^ x
A矩阵必须为方阵
(8)点运算
两个矩阵的点运算是对应元素之间的直接运算
当x是向量时[x^5]不能写成x^5,应该写成x.^5
Trial>> A = [1,2;3,4];
Trial>> B = A.^A
B =
1 4
27 256
2.矩阵的比较运算
(1)find()
Trial>> A = [1,2,3;4,5,6;7,8,9];
Trial>> B = find(A>=5)
B =
3
5
6
8
9
该函数作用是将矩阵A按列构成列向量并返回条件的数组下标
Trial>> C = find(isnan(A))
C =
空的 0×1 double列矢量
返回数组里值为NaN的下标
Trial>> [m,n] = find(A>=5)
m =
3
2
3
2
3
n =
1
2
2
3
3
[m,n] = find(A>=5)
返回矩阵里满足条件行和列的坐标
另外还有any(A>=5) all(A>=5)