专题二 Matlab矩阵的处理
文章目录
2.1 特殊矩阵
1.通用的特殊矩阵
- 特殊矩阵生成函数
- zeros函数:产生全0矩阵
- ones函数:产生全1矩阵
- eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵
- rand函数:产生(0,1)区间均匀分布的随机矩阵
- randn函数:产生均值为0,方差为1的标准正态分布随机矩阵
- 调用格式(以
zeros函数
为例)zeros(m):
产生m×m的零矩阵zeros(m,n):
产生m×n的零矩阵zeros(size(A)):
产生与矩阵A同样大小的零矩阵
2.用于专门学科的特殊矩阵
- 魔方矩阵——Magic Square
-
>>>M=magic(3) M= 8 1 6 3 5 7 4 9 2
- n阶魔方阵由1,2,3,……,n2共n2个整数组成,且每行、每列以及主、副对角线上各n各元素之和都相等
- n阶魔方阵每行每列元素的和为(1+2+3+……+n2)/n=(n+n3)/2
- Matlab函数magic(n)产生特定的魔方阵
-
- 范德蒙矩阵
-
对于向量 V = [ V 1 , V 2 , . . . , V n ] V=[V_1,V_2,...,V_n] V=[V1,V2,...,Vn],范德蒙矩阵的一般形式为:
V = [ v 1 n − 1 . . . v 1 2 v 1 1 v 1 0 v 2 n − 1 . . . v 2 2 v 2 1 v 2 0 v 3 n − 1 . . . v 3 2 v 3 1 v 3 0 ⋮ ⋱ ⋮ ⋮ ⋮ v n n − 1 . . . v n 2 v n 1 v n 0 ] (1) V = \left[ \begin{matrix} v_1^{n-1} & ... & v_1^{2} & v_1^{1} & v_1^{0} \\ v_2^{n-1} & ... & v_2^{2} & v_2^{1} & v_2^{0} \\ v_3^{n-1} & ... & v_3^{2} & v_3^{1} & v_3^{0} \\ \vdots & \ddots & \vdots & \vdots & \vdots \\ v_n^{n-1} & ... & v_n^{2} & v_n^{1} & v_n^{0} \end{matrix} \right]\tag{1} V=⎣⎢⎢⎢⎢⎢⎡v1n−1v2n−1v3n−1⋮vnn−1.........⋱...v12v22v32⋮vn2v11v21v31⋮vn1v10v20v30⋮vn0⎦⎥⎥⎥⎥⎥⎤(1) -
函数调用
>>A = vander(1:5) A = 1 1 1 1 1 16 8 4 2 1 81 27 9 3 1 256 64 16 4 1 625 125 25 5 1
-
范德蒙矩阵常用再各种通信系统的纠错编码中
-
- 希尔伯特矩阵
- 一般形式
H = [ 1 1 / 2 ⋯ 1 / n 1 / 2 1 / 3 ⋯ 1 / ( n + 1 ) ⋮ ⋮ ⋱ ⋮ 1 / n 1 / ( n + 1 ) ⋯ 1 / ( 2 n + 1 ) ] (2) H= \left[ \begin{matrix} 1 & 1/2 & \cdots & 1/n \\ 1/2 & 1/3 & \cdots & 1/(n+1) \\ \vdots & \vdots & \ddots & \vdots \\ 1/n & 1/(n+1) & \cdots & 1/(2n+1) \end{matrix}\right]\tag{2} H=⎣⎢⎢⎢⎡11/2⋮1/n1/21/3⋮1/(n+1)⋯⋯⋱⋯1/n1/(n+1)⋮1/(2n+1)⎦⎥⎥⎥⎤(2)
希尔伯特矩阵的元素为H(i,j)=1/(i+j-1) - 函数调用
>>format rat >>H=hilb(4) H = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7
- 一般形式
- 伴随矩阵(p为多项式系数向量,高位在前低位在后,伴随矩阵特征值等于多项式方程的根)
-
>>p=[1,-2,-5,6]; >>A=compan(p) A = 2 5 -6 1 0 0 0 1 0
-
2.2 矩阵变换
1.对角阵
- 对角阵的分类
- 对角矩阵:只有对角线上有非零元素的矩阵
- 数量矩阵:对角线上的元素相等的对角矩阵
- 单位矩阵:对角线上的元素都为1的对角矩阵
- 提取对角线元素
diag(A)
提取矩阵主对角线元素,产生一个列向量diag(A,K)
提取矩阵第k条对角线元素,产生一个列向量
对角线约定
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gzatkZT9-1640316612395)(对角线约定.png)]
- 构造对角矩阵同样使用diag函数,但参数为向量
diag(A)
以向量V为主对角线元素,产生对角矩阵diag(A,K)
以向量V为第k条对角线元素,产生对角矩阵
2.三角阵
- 上(下)三角阵
triu(A)
:提取矩阵A的主对角线及以上的元素triu(A,k)
:提取矩阵A的第k条对角线及以上的元素- 下三角矩阵函数为
tril
用法与triu
相同
3.矩阵的转置
- 转置运算符(.’)
- 共轭转置运算符(’),在转置基础上取每个复数的复共轭
4.矩阵的旋转与翻转
- 矩阵旋转
rot90(A,k)
:将矩阵A逆时针方向旋转90°的k倍
- 矩阵翻转
fliplr(A)
:对矩阵A实施左右翻转flipud(A)
:对矩阵A实施上下翻转
5.矩阵的求逆
inv(A)
:求矩阵A的逆矩阵
2.3 矩阵求值
1.矩阵的行列式值、秩、迹
-
矩阵求值类型 调用函数 方阵的行列式值 det(A) 矩阵的秩 rank(A) 矩阵的迹 trace(A) - 向量和矩阵的范数
- 范数:度量某种意义下的长度
- 常用三种向量的范数
- 范数1:向量元素的绝对值之和
norm(V,1)
- 范数2:向量元素绝对值的平方和的平方根
norm(V);norm(V,2)
- 范数∞:所有向量元素绝对值中的最大值
norm(V,inf)
- 范数1:向量元素的绝对值之和
- 常用三种矩阵的范数
- 矩阵的1——范数:所有矩阵列元素绝对值之和的最大值
norm(V,1)
- 矩阵的2——范数:矩阵最大特征值的平方根
norm(V);norm(V,2)
- 矩阵的∞——范数:所有矩阵行元素绝对值之和的最大值
norm(V,inf)
- 矩阵的1——范数:所有矩阵列元素绝对值之和的最大值
- 矩阵的条件数
- 矩阵的条件数等于矩阵的范数和逆矩阵范数的乘积
- 条件数越接近1,矩阵性能越好
- 三种条件数函数
cond(A,1)
计算1——范数下的条件数cond(A)或cond(A,2)
计算2——范数下的条件数cond(A,inf)
计算∞——范数下的条件数
2.4 矩阵的特征值和特征向量
- 数学定义
- 设A是n阶方阵,如果存在常数λ和n为非零列向量x,使得等式Ax=λx成立,则称λ为A的特征值,x是对应特征值λ的特征向量
- 调用格式
E=eig(A)
:求矩阵A的全部特征值,构成向量E[X,D]=eig(A)
:求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量
2.5 稀疏矩阵
- 矩阵的存储方式(均为按列存储)
- 完全存储方式
- 稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号
- 稀疏存储方式的产生✌️
- 完全存储方式与稀疏存储方式之间的转化
A=sparse(S)
:将矩阵S转化为稀疏存储方式的矩阵AS=full(A)
:将矩阵A转化为完全存储方式的矩阵S
- 直接建立稀疏存储矩阵❤️
- sparse函数的其他调用格式
sparse(m,n)
生成一个m×n的所有元素都是0的稀疏矩阵sparse(u,v,S)
其中u,v,S是3各等长的向量。S是要建立的稀疏矩阵存储矩阵的非零元素,u(i)、v(i)分别是S(i)的行和列下标
- 使用spconvert函数直接建立稀疏存储矩阵
B=spconvert(A)
A为一个三列或四列的矩阵- 第一列表示非零元素所在行
- 第二列表示非零元素所在列
- 第三列表示非零元素的实部
)、v(i)分别是S(i)的行和列下标
- 使用spconvert函数直接建立稀疏存储矩阵
B=spconvert(A)
A为一个三列或四列的矩阵- 第一列表示非零元素所在行
- 第二列表示非零元素所在列
- 第三列表示非零元素的实部
- 第四列表示非零元素的虚部
- 完全存储方式与稀疏存储方式之间的转化