矩阵引用:
-
单个元素引用
- 可以通过行下标和列下标来引用矩阵中的单个元素。例如,对于矩阵
A
,A(2,3)
表示引用矩阵A
的第 2 行第 3 列的元素。 - 下标从 1 开始,而不是像某些编程语言那样从 0 开始。
- 可以通过行下标和列下标来引用矩阵中的单个元素。例如,对于矩阵
-
多个元素引用
- 可以使用冒号来表示一个范围的下标。例如,
A(1:3,2)
表示引用矩阵A
的第 1 行到第 3 行的第 2 列元素,结果是一个包含三个元素的列向量。 A(:,2)
表示引用矩阵A
的所有行的第 2 列元素,结果是一个列向量
- 可以使用冒号来表示一个范围的下标。例如,
-
引用连续的行和列
- 例如,对于矩阵
A
,A(2:4,3:5)
表示引用矩阵A
从第 2 行到第 4 行以及从第 3 列到第 5 列的子矩阵。 A(1:2:end,1:3)
表示引用矩阵A
中从第 1 行开始,每隔一行(即第 1、3、5 等行)以及第 1 列到第 3 列的元素。
- 例如,对于矩阵
-
引用不连续的行和列
- 可以使用向量作为下标来引用不连续的行和列。例如,
A([1,3,5],[2,4])
表示引用矩阵A
的第 1、3、5 行和第 2、4 列的元素,结果是一个新的矩阵。
- 可以使用向量作为下标来引用不连续的行和列。例如,
矩阵知识:
一、矩阵的逆
- 解释:对于一个方阵A,如果存在一个方阵B,使得AB=BA=I(其中是单位矩阵),那么就是的逆矩阵,记作A^-1。
- MATLAB 代码:
-
A = [1 2; 3 4]; invA = inv(A);
二、矩阵的旋转
- 解释:通过线性变换将矩阵绕原点进行旋转。通常使用旋转矩阵来实现。
rot90
函数可以将矩阵逆时针旋转 90 度。 - MATLAB 代码:
-
theta = pi/4; % 旋转角度 R = [cos(theta) -sin(theta); sin(theta) cos(theta)]; A = [1 2; 3 4]; rotatedA = R * A;
A = [1 2 3; 4 5 6; 7 8 9]; rotatedA = rot90(A);
三、矩阵的主对角线
- 解释:从矩阵的左上角到右下角的对角线元素。
- MATLAB 代码:
A = [1 2 3; 4 5 6; 7 8 9]; diagonalElements = diag(A);
四、矩阵的上三角
- 解释:矩阵中主对角线及其上方的元素组成的部分。
- MATLAB 代码:
A = [1 2 3; 4 5 6; 7 8 9]; upperTriangle = triu(A);
五、矩阵的下三角
- 解释:矩阵中主对角线及其下方的元素组成的部分。
- MATLAB 代码:
-
A = [1 2 3; 4 5 6; 7 8 9]; lowerTriangle = tril(A);
六、矩阵的秩
- 解释:矩阵中线性无关的行向量或列向量的最大数目。
- MATLAB 代码:
-
A = [1 2 3; 4 5 6; 7 8 9]; rankA = rank(A);
七、矩阵的范数
- 解释:衡量矩阵大小的一种方式,常见的有1范数、2范数、无穷范数等。
- MATLAB 代码:
-
A = [1 2; 3 4]; norm1 = norm(A,1) norm2 = norm(A) normInf = norm(A,Inf) %%用法 %norm(A,p):计算矩阵A的p范数。 %当p省略或为 2 时,计算矩阵的 2 范数,它是矩阵的最大奇异值。 %当p = 1时,计算矩阵的 1 范数,即矩阵列向量的 1 范数中的最大值。 %当p = Inf时,计算矩阵的无穷范数,即矩阵行向量的 1 范数中的最大值。 %%意义 %矩阵的范数可以用来衡量矩阵的大小、%%稳定性%%等性质。 %在数值分析、线性代数和优化等领域中,矩阵范数在误差分析起着重要的作用。 %%结果 %norm1 =6 %norm2 =5.4650 %normInf =7
八、矩阵的条件数
- 解释:衡量矩阵 “病态程度” 的指标,条件数越大,矩阵越接近奇异,求解线性方程组时对数据的微小变化越敏感。
- MATLAB 代码:
-
A = [1 2; 3 4]; condA = cond(A);
九、矩阵的迹
- 解释:矩阵主对角线元素之和。
- MATLAB 代码
-
A = [1 2 3; 4 5 6; 7 8 9]; traceA = trace(A);
十、矩阵的特征值和特征向量
- 解释:对于方阵,如果存在非零向量和标量。完成相关条件。
- MATLAB 代码:
-
A = [1 2; 3 4]; [eigenvectors,eigenvalues] = eig(A);
eig
函数用于计算矩阵的特征值和特征向量。语法:
-
A = [1 2; 3 4]; B = [5 6; 7 8]; [V,D] = eig(A,B); disp('广义特征值:'); disp(D); disp('广义特征向量:'); disp(V);
-
[V,D] = eig(A)
:A
是要计算特征值和特征向量的方阵。V
是特征向量矩阵,每一列是一个特征向量。D
是对角矩阵,其对角线上的元素是A
的特征值,与V
中的特征向量相对应。
-
eig(A,B)
:- 计算广义特征值问题
A*x = lambda*B*x
,其中A
和B
是方阵。 - 返回广义特征值
lambda
,可以通过[V,D] = eig(A,B)
来同时获得广义特征向量矩阵V
和广义特征值矩阵D
。
- 计算广义特征值问题
特殊矩阵生成
在 MATLAB 中可以生成多种特殊矩阵,以下是一些常见的特殊矩阵及其生成方法:
一、零矩阵
使用zeros
函数生成零矩阵。
语法:zeros(m,n)
或zeros(n)
(生成的零矩阵)。
示例:
A = zeros(3,4); % 生成 3 行 4 列的零矩阵
B = zeros(5); % 生成 5×5 的零矩阵
二、单位矩阵
使用eye
函数生成单位矩阵。
语法:eye(n)
生成的单位矩阵。
I = eye(4); % 生成 4×4 的单位矩阵
三、全一矩阵
使用ones
函数生成全一矩阵。
语法:ones(m,n)
或ones(n)
(生成的全一矩阵)。
M = ones(2,3); % 生成 2 行 3 列的全一矩阵
N = ones(6); % 生成 6×6 的全一矩阵
四、对角矩阵
使用diag
函数从向量生成对角矩阵。
语法:diag(v)
,其中v
是一个向量,生成以v
为对角线元素的对角矩阵。
示例:
A = [1 2 3; 4 5 6; 7 8 9];
d = diag(A); % 提取 A 的主对角线元素生成向量
六、希尔伯特矩阵
使用hilb
函数生成希尔伯特矩阵。
语法:hilb(n)
生成的希尔伯特矩阵,其元素。
示例:
H = hilb(4);
七、魔方矩阵
使用magic
函数生成魔方矩阵。
语法:magic(n)
生成的魔方矩阵,其行、列和对角线元素之和相等。
示例:
M = magic(5);
五、随机矩阵
生成均匀分布的随机矩阵。
- 使用
rand
函数。语法:rand(m,n)
生成的矩阵,其元素在区间上均匀分布。 - 示例:
R = rand(3,4);
生成正态分布的随机矩阵。
- 使用
randn
函数。语法:randn(m,n)
生成的矩阵,其元素服从均值为 0、方差为 1 的正态分布。 - 示例:
N = randn(2,2);