一、特殊矩阵
通用的特殊矩阵
- zeros函数:产生0矩阵
- zeros(m):产生m*m零矩阵
- zeros(m,n):产生m*n零矩阵
- zeros(size(A)):产生与A同大小的零矩阵
>>A=zeros(2,3)
A =
0 0 0
0 0 0
>>zeros(size(reshape(A,3,2))
ans =
0 0
0 0
0 0
- ones函数:产生1矩阵
- eye函数:产生对角线为1的矩阵、
- rand函数:产生(0,1)区间均匀分布的随机矩阵
- randn函数:产生均值为0,方差为1的标准正态分布随机矩阵
- fix(a+(b-a+1)*x):产生[a,b]区间上均匀分布的随机整数
- μ+σx:产生均值为μ、方差为σ^2的标准正态分布随机数x
//产生5阶两位随机整数矩阵A,再生产均值为0.6,方差为0.1的5阶正态分布随机矩阵B,最后验证(A+B)I=IA+BI(I为单位矩阵) >>A=fix(10+(99-10+1)*rand(5)); >>B=0.6+sqrt(0.1)*randn(5);//sqrt 平方根 >>C=eye(5); >>(A+B)*C==C*A+B*C ans= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
用于专门学科的特殊矩阵
魔法阵
>>M=magic(8); >>sum(M(1,:)) ans = 260 >>sum(M(:,1) ans = 260
范德蒙矩阵
希尔伯特矩阵(病态严重)
伴随矩阵
帕斯卡矩阵
二、矩阵变换
对角阵
- 对角矩阵:只有对角线上有非零元素的矩阵
- 数量矩阵:对角线上的元素相等的对角矩阵
-
提取矩阵的对角线元素
diag(A):提取矩阵A主对角线元素,产生一个列向量
- diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量
构造对角矩阵
- diag(V):以向量V为主对角线元素,产生对角矩阵
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵
//先建立5*5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,···,第五行乘以5 >>A=[7,0,1,0,5;3,5,7,4,1;4,0,3,0,2;1,1,9,2,3;1,8,5,2,9] A= 7 0 1 0 5 3 5 7 4 1 4 0 3 0 2 1 1 9 2 3 1 8 5 2 9 >>D=diag(1:5) >>D*A ans = 7 0 1 0 5 6 10 14 8 2 12 0 9 0 6 4 4 36 8 12 5 40 25 10 45
三角阵
上三角矩阵
//triu(A):提取矩阵A的主对角线及以上的元素 //triu(A,k):提取矩阵A的第k条对角线及以上的元素 >>triu(ones(4),-1) ans = 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1
下三角矩阵
矩阵的转置
转置运算符是小数点后面接单引号(.’)
共轭转置,运算符是单引号(’)
>>A=[1,3;3+4i,1-2i] A = 1.0000+0.0000i 3.0000+0.0000i 3.0000+4.0000i 1.0000-2.0000i >>A.' ans= 1.0000+0.0000i 3.0000+4.0000i 3.0000+0.0000i 1.0000-2.0000i
矩阵的旋转
//rot90(A,k): 将矩阵A逆时针方向旋转90度的k倍,k为1时可以省略 >>A=[1,3,2;-3,2,1;4,1,2] A= 1 3 2 -3 2 1 4 1 2 >>rot90(A) ans= 2 1 2 3 2 1 1 -3 4 >>rot90(A,2) ans= 2 1 4 1 2 -3 2 3 1
矩阵的翻转
fliplr(A):对矩阵A左右翻转
-
矩阵的求逆
-
三、矩阵求值
方阵的行列式
-
矩阵的秩
-
矩阵的迹
-
向量和矩阵的范数
向量范数
norm(V)或norm(V):向量V的2—范数 (向量元素平方和的平方跟)
norm(V,1):1—范数 (向量元素的绝对值之和)
norm(V,inf):无穷范数 (所以元素绝对值中的最大值)矩阵范数
矩阵的条件数
矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积
- 条件数越接近一,性能越好
- cond(A,1) 1-范数下的条件数
- cond(A)或cond(A,2) 2-范数下的条件数
-
四、特征值与特征向量
求矩阵的特征值与特征向量
E=eig(A) :求矩阵A的全部特征值,构成向量E
- [X,D]=eig(A): 求A的全部特征值,构成对角阵D,并产生矩阵X,X各列是对应的特征向量
- eigshow函数:演示单位圆上的向量x和Ax之间的关系
五、稀疏矩阵
存储方式
- 完全存储 全部都存
- 稀疏存储 只存储矩阵的非零元素的值及其位置,即行号和列号
稀疏存储方式的产生
完全存储方式与稀疏存储方式之间的转化
//A=sparse(S):将矩阵S转换为稀疏存储方式的矩阵A
//S=full(A):将矩阵A转换为完全存储方式的矩阵S
直接建立稀疏存储矩阵
- sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵
- sparse(u,v,S):其中u、v、S是三个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i)、v(i)分别为S(i)的行下标和列下标
- 利用spconvert函数建立稀疏存储矩阵,调用格式:B=spconvert(A)
带状系数矩阵的稀疏存储
- 基本类型:无规则结构的稀疏矩阵 有规则结构的稀疏矩阵
- 带状稀疏矩阵:所有非零元素集中在对角线上的矩阵