导图社区 专题2:MATLAB矩阵处理十个专题涵盖MATLAB的所有知
十个专题涵盖MATLAB的所有知识,大学加油,数学建模及所有竞赛
编辑于2020-01-12 04:46:25专题二
2.1特殊矩阵
通用的特殊矩阵
zeros函数
0矩阵 >> A=zeros(3) B=zeros(2,3) C=zeros(size(A)) A = 0 0 0 0 0 0 0 0 0 B = 0 0 0 0 0 0 C = 0 0 0 0 0 0 0 0 0
ones函数
幺矩阵 全为1
eye函数
对角线为1矩阵 方阵时:单位阵
rand函数
产生(0,1)区间均匀分布的随机矩阵
randn函数
产生均值为0,方差为的标准正正态分布矩阵
例子
>> A=fix(10+(99-10+1)*rand(5)); >> B=0.6+sqrt(0.1)*randn(5); >> C=eye(5); >> (A+B)*C==C*A+B*C ans = 5×5 logical 数组 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
面向专门学科的特殊矩阵
n阶魔法阵
由:1、2、...n^2组成 每行每列和为组成数的平均数
magic(n)
范德蒙阵
vander(n,m)
希尔伯特矩阵
H(i,j)=1/(i+j-1) format rat >> hilb(4) ans = 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
hilb(n)
伴随矩阵
compan(p)
x^3-2x^2-5x+6 >> p=[1,-2,-5,6]; >> A=compan(p) A = 2 5 -6 1 0 0 0 1 0
帕斯卡矩阵
>> format rat; >> P=pascal(5) P = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 >> inv(P) ans = 5 -10 10 -5 1 -10 30 -35 19 -4 10 -35 46 -27 6 -5 19 -27 17 -4 1 -4 6 -4 1 矩阵全为整数,其逆矩阵也全为整数
pascal(n)
2.2矩阵变换
对角阵
数量矩阵 单位阵
提取主对角线元素
diag(A)
提取主对角线上的元素作为一个列向量
diag(A,k)
提取第k条对角线的元素,产生一个列向量
构造对角阵
diag(V)
diag(V,k)
例子
建立A(5*5) 第一行乘以1 ... 总结:一个对角阵左乘一个矩阵,就是对这个矩阵的行做倍乘
三角阵
上三角
triu(A)
triu(A,k)
下三角
tril(A)
tri(A,k)
矩阵的转置
.'
普通转置运算
.'
共轭转置
转置基础上还要去每个数的复共轭 >> A=[1,3;3+4i,1-2i] A = 1 + 0i 3 + 0i 3 + 4i 1 - 2i >> A.' ans = 1 + 0i 3 + 4i 3 + 0i 1 - 2i >> A' ans = 1 + 0i 3 - 4i 3 + 0i 1 + 2i
矩阵旋转
rot90(A,k)
>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> B=rot90(A) B = 6 7 2 1 5 9 8 3 4 >> C=rot90(A,2) C = 2 9 4 7 5 3 6 1 8
矩阵翻转
左右翻转
fliplr(A)
上下翻转
flipud(A)
求逆矩阵
inv(A)
2.3矩阵求值
求行列式
det(A)
矩阵的秩
rank(A)
>> for n=2:20 r(n)=rank(magic(n)); end >> bar(r) >> grid on
for循环
>> for n=1:10 a(n)=n+1; end >> a a = 2 3 4 5 6 7 8 9 10 11
画直方图的函数
bar(V) >> a=[1,2,3,4,5]; >> bar(a)
矩阵的迹
trace(A)
主对角线上元素的和
sum(diag(A))
向量和矩阵的范数
向量
向量1-范数
元素绝对值之和
norm(V)
norm(V,2)
向量2-范数
平方和的平方根
norm(V,1)
向量∞-范数
绝对值的最大值
norm(V,inf)
矩阵
矩阵A的1-范数
列元素绝对值之和的最大值
矩阵A的2-范数
A'A矩阵最大特征值的平方根
矩阵A的∞-范数
行元素绝对值之和的最大值
矩阵的条件数
A的条件数=A的范数与A的逆矩阵范数的乘积
条件值越接近于1则稳定性越好
cond(A,1/2/inf)
2.4矩阵的特征值和特征向量
特征值的定义
函数
E=dig(A)
构成向量
[X,D]=eig(A)
产生矩阵X(特征向量),全部特征值构成对角阵D >> format rat >> [X,D]=eig(A) X = -1292/2889 331/3390 -1835/2899 2371/3497 -425/1623 -1292/2889 618/1753 863/1464 311/965 -151/872 -1292/2889 1740/3163 -453/1157 -1740/3163 453/1157 -1292/2889 -311/965 151/872 -618/1753 -863/1464 -1292/2889 -2371/3497 425/1623 -331/3390 1835/2899 D = 65 0 0 0 0 0 -2383/112 0 0 0 0 0 -3846/293 0 0 0 0 0 2383/112 0 0 0 0 0 3846/293
特征值的几何意义
2.5稀疏矩阵
定义
0元素远多于非0元素
矩阵存储方式
完全存储
稀疏存储
矩阵的存储顺序没有发生改变,也是按列存储
A=sparse(B)
>> A=sparse(eye(5)) A = (1,1) 1 (2,2) 1 (3,3) 1 (4,4) 1 (5,5) 1 >> B=full(A) B = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 >> whos Name Size Bytes Class Attributes A 5x5 128 double sparse B 5x5 200 double C 6x6 288 double
直接建立稀疏存储方式
sparse
sparse(行的向量,列的向量,对应位置的数据) >> A=sparse([1,2,3],[4,5,6],[9,8,7]) A = (1,4) 9 (2,5) 8 (3,6) 7 >> full(A) ans = 0 0 0 9 0 0 0 0 0 0 8 0 0 0 0 0 0 7
spconvert
A是一个m*3或者m*4的矩阵,其每行表示一个非0元素,m是非0元素的个数
带状稀疏矩阵
所有非零元素集中在主对角线上的元素
法一
[B,d]=spdiags(A) 从带状稀疏矩阵A中提取全部非0主对角线元素 赋给矩阵B 及这些非0主对角线的位置d
注
就相当于: 对角线一一挑出来,如果不是全为0,就参与构成新矩阵 d用来记录这个对角线的位置
法二
A=spdiag(B,d,m,n)
注
A=spdiags(B,d,m,n) 产生带状稀疏矩阵A m,n为原带状稀疏矩阵的行数列数 B的第i列即为原带状稀疏矩阵的第i条非0对角线 d为所有非0对角线的位置