MATLAB 提供了许多函数,用于创建各种类型的矩阵。例如,您可以使用基于帕斯卡三角形的项创建一个对称矩阵:
A = pascal(3)
A =
1 1 1
1 2 3
1 3 6
您也可以创建一个非对称幻方矩阵,它的行总和与列总和相等:
B = magic(3)
B =
8 1 6
3 5 7
4 9 2
另一个示例是由随机整数构成的 3×2 矩形矩阵:在这种情况下,randi 的第一个输入描述整数可能值的范围,后面两个输入描述行和列的数量。
C = randi(10,3,2)
C =
9 10
10 7
2 1
列向量为 m×1 矩阵,行向量为 1×n 矩阵,标量为 1×1 矩阵。
示例矩阵 A = pascal(3) 是对称的,因此 A’ 等于 A。然而,B = magic(3) 不是对称的,因此 B’ 的元素是 B 的元素沿主对角线反转之后的结果:
B = magic(3)
B =
8 1 6
3 5 7
4 9 2
X = B'
X =
8 3 4
1 5 9
6 7 2
对于复数向量或矩阵 z,参量 z’ 不仅可转置该向量或矩阵,而且可将每个复数元素转换为其复共轭数。也就是说,每个复数元素的虚部的正负号将会发生更改。以如下复矩阵为例:
z = [1+2i 7-3i 3+4i; 6-2i 9i 4+7i]
z =
1.0000 + 2.0000i 7.0000 - 3.0000i 3.0000 + 4.0000i
6.0000 - 2.0000i 0.0000 + 9.0000i 4.0000 + 7.0000i
z 的复共轭转置为:
z'
ans =
1.0000 - 2.0000i 6.0000 + 2.0000i
7.0000 + 3.0000i 0.0000 - 9.0000i
3.0000 - 4.0000i 4.0000 - 7.0000i
非共轭复数转置(其中每个元素的复数部分保留其符号)表示为 z.’:
z.'
ans =
1.0000 + 2.0000i 6.0000 - 2.0000i
7.0000 - 3.0000i 0.0000 + 9.0000i
3.0000 + 4.0000i 4.0000 + 7.0000i
如果 A 为 m×p 且 B 为 p×n,则二者的乘积 C 为 m×n。该乘积实际上可以使用 MATLAB for 循环、colon 表示法和向量点积进行定义:
A = pascal(3)
B = magic(3)
m = 3;
n = 3;
for i = 1:m
for j = 1:n
C(i,j) = A(i,:)*B(:,j);
end
end
C
A =
1 1 1
1 2 3
1 3 6
B =
8 1 6
3 5 7
4 9 2
C =
15 15 15
26 38 26
41 70 39
函数eye(m,n)返回 m×n 矩形单位矩阵,
函数eye(n) 返回 n×n 单位方阵。
如果矩阵 A 为非奇异方阵(非零行列式),则方程 AX = I 和 XA = I 具有相同的解 X。此解称为 A 的逆矩阵,inv 函数和表达式 A^-1 均可对矩阵求逆。
A = pascal(3)
A =
1 1 1
1 2 3
1 3 6
X = inv(A)
X =
3.0000 -3.0000 1.0000
-3.0000 5.0000 -2.0000
1.0000 -2.0000 1.0000
A*X
ans =
1.0000 0 0
0.0000 1.0000 -0.0000
-0.0000 0.0000 1.0000
通过 det 计算的行列式表示由矩阵描述的线性变换的缩放因子。当行列式正好为零时,矩阵为奇异矩阵,因此不存在逆矩阵。
d = det(A)
d =
1
求解线性方程组 Ax = b 时,常常会误用 inv。从执行时间和数值精度方面而言,求解此方程的最佳方法是使用矩阵反斜杠运算符,即 x = A\b。