萌新的matlab入门2
专题二 matlab矩阵处理
2.1 matlab矩阵处理
1.通用的特殊矩阵
zeros函数:产生全0矩阵,即0矩阵。
ones函数:产生全1矩阵,即幺矩阵。
eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。
rand函数:产生(0,1)区间均匀分布的随机矩阵。
randn函数:产生均值为1,方差为1的标准正态分布随机矩阵。
zeros函数的调用格式
zeros(m):产生mn零矩阵
zeros(m,n):产生mn零矩阵
zeros(size(A)):产生与矩阵A同样大小的零矩阵。
rand函数:产生(0,1)开区间均匀分布的随机数x
fix(a+(b-a+1)*x):产生【a,b】区间上均匀分布的随机整数。
randn函数:产生均值为0、方差为1的标准正态分布随机数x。
1.对角阵
对角阵:只有对角线上有非零元素的矩阵。
数量矩阵:对角线上的元素相等的对角矩阵。
单位矩阵:对角线上的元素都为1的对角矩阵。
(1)提取矩阵的对角线元素
diag(A):提取矩阵A主对角线元素,产生一个列向量。
diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。
(2)构造对角阵
diag(V):以向量V为主对角线元素,产生对角矩阵。
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。
要将A的割裂元素分别乘以对角阵的对角线元素,可以用一个对角阵右乘矩阵A
2.三角阵
上三角阵:矩阵的对角线以下的元素全为0的矩阵。
下三角阵:对角线以上的元素全为0的矩阵。
(1)上三角矩阵
triu(A):提取矩阵A的主对角线及以上的元素。
triu(A,k):提取矩阵A的第k条对角线及以上的元素。
(2)下三角矩阵
在matlab中,提取矩阵A的下三角矩阵的函数时tril,其用法与triu函数完全相同
3.矩阵的转置
转置运算符的基础上还要去每个数的复共轭是小数点后面接单引号(.’)。
共轭转置,其运算符是单引号(‘),它在转置的基础上还要取每个数的复共轭。
4.矩阵的旋转
rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。
5 矩阵的反转
对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,以此类推。
fliplr(A):对矩阵A实施左右翻转
flipud(A):对矩阵A实施上下翻转
6.矩阵的求逆
对于一个方阵A,如果存在与一个与其同阶的方阵B,使得AB=BA=I(I为单位矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。
inv(A):求方阵A的逆矩阵。
1.方阵的行列式
det(A):求方阵A所对应的行列式的值。
2 .矩阵的秩
矩阵线性无关的行数或列数称为矩阵的秩。
rank(A):求矩阵A的秩。
3.矩阵的迹
矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。
trace(A):求矩阵A的迹。
4.向量和矩阵的范数
矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。
在matlab中,求向量范数的函数为:
norm(V)或norm(V,2):计算向量V的2—范数。。
norm(V,1):计算向量V的1—范数。
norm(V,inf):计算向量V的∞—范数。
(2)矩阵的范数
matlab提供了求三种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。
5.矩阵的条件数
矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘机。
条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差。
在MATLAB中,计算矩阵的三种条件数的函数是:
cond(A,1):计算A的1----范数下的条件数。
cond(A)或cond(A,2):计算A 的2—范数数下的条件数。
cond(A,inf):计算A的∞—范数下的条件数。
2.4 矩阵的特征值和特征向量
矩阵特征值的数学定义
求矩阵的特征值与特征向量
特征值的几何含义
1.矩阵特征值的数学定义
设A是n阶方阵,如果存在常数λ和n维非零列向量x,使得等式Ax=λx成立,则称λ为A的特征值,x是对应特征值λ的特征向量。
2.求矩阵的特征值与特征向量
在MATLAB中,计算矩阵的特征值和特征向量的函数是eig,常用的调用格式有两种:
E=eig(A):求矩阵A的全部特征值,构成向量E。
[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。
2.5 稀疏矩阵
矩阵的存储方式
稀疏存储方式的产生
稀疏矩阵的应用实例
1.矩阵的存储方式
完全存储方式:将矩阵的全部元素按列存储。
稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号。
注意,采用稀疏存储方式时,矩阵元素的存储顺序并没有改变,也是按列的顺序进行存储。
2稀疏存储方式的产生
(1)完全存储方式与稀疏存储方式之间的转化
A=space(S):将矩阵S转化为稀疏存储方式的矩阵A。
S=full(A):将矩阵A转化为完全存储方式的矩阵S。
(2)直接建立稀疏存储矩阵
sparse(m,n):产生一个mn的所有元素都是0的稀疏矩阵。
sparse(u,v,S):其中u,v,S是三个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i)、v(i)分别是S(i)的行和列下标。
使用spconvert函数直接建立稀疏存储矩阵,其调用格式为:
B=spconvert(A)
其中,A为一个m3或m*4的矩阵,其每行表示一个非零元素,m是非零元素的个数。
A(i,1)表示第i个非零元素所在的行。
A(i,2)表示第i个非零元素所在的列。
A(i,3)表示第i个非零元素值的实部。
A(i,4)表示第i个非零元素值的虚部。
若矩阵的全部元素都是实数,则无需第四列。
(3)带状稀疏矩阵的稀疏存储
稀疏矩阵有两种基本类型:无规则结构的稀疏矩阵与有规则结构的稀疏矩阵
带状稀疏矩阵就是一种十分典型的具有规则结构的稀疏矩阵,它是指所有非零元素集中在对角线上的矩阵。
[B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B及其这些非零对角线的位置向量d。
A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,其中m、n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置。
总结
用spdiags函数产生带状稀疏矩阵的稀疏存储A:
A=spdiags(B,d,m,n)
其中,m、n为原带状矩阵的行数与列数。B为r*p矩阵,这里r=min(m,n),p为原带状矩阵所有非零对角线的条数,矩阵B的第i列即为原带状矩阵的第i条非零对角线,取值方法是:若非零对角线上元素个数等于r,则取全部元素;若非零对角线上元素个数效于r,则应该用零补足到r个元素。补零的原则是:若m<n(行数<列数),则d<0时(主对角线以下)在前面补0,d>0时(主对角线以上)在后面补0;当m≥n(行数≥列数),则d<0时在后面补0;d>0时在前面补0.
(4)单位矩阵的稀疏存储
speye(m,n)返回一个m*n的稀疏单位矩阵。