MATLAB矩阵变换

对角阵、数量矩阵、单位阵、秩、迹、逆、行列式、条件数

范数(norm):用来度量某个向量空间(或矩阵)中每个向量的长度或大小

一些性质:转置矩阵对角线的元素不变,矩阵的秩(rank)与方程组求解、判断是否可逆有关。

矩阵的迹(trace)为矩阵主队角元素之和,相似变换矩阵的迹不变

一、对角阵与三角阵

%矩阵变换
%对角阵与三角阵
A=[5,4,1,0,9]
DA=diag(A)%1
DA1=diag(A,1)

 

 
%数量矩阵
B=eye(4)
DB=7*B
%取对角线矩阵
C=magic(4)
V1=diag(C)
V2=diag(C,2)

 %ex1建立一个5*5矩阵A1,将A1的第一行元素乘1,第二行元素乘2......
A1=magic(5)
D1=diag(1:5)
Alans=D1*A1

 
%ex2建立一个5*5矩阵A1,将A1的第一列元素乘1,第二列元素乘2......
A2=magic(5)
D1=diag(1:5)
Alans2=A1*D1

%三角阵
%上三角(triu)

A3=magic(7)
A3triup=triu(A3)

%下三角
A3tril=tril(A3)

%小三角
A3triFra=triu(A3,2)%第二个参数可负

 

 
%矩阵转置与旋转
%转置
T=magic(4)
T1=T.'

 %共轭转置
R=magic(3)
I=magic(3).*3-7
T2=R+I.*1i
T3=T2'

 
%旋转rot90(A,K)逆时针A旋转90°
R1=magic(4)
R1rot=rot90(R1,1)
R1rot=rot90(R1,4)
%左右旋转
F=magic(3)
F1=fliplr(F)
%上下翻转
F2=flipud(F)

 

 %矩阵的逆与广义逆
%inv(A)
%A*B=B*A=I
E=magic(3)
Einv=inv(E)
RES=E*Einv

 %求线性方程组AX=b
%X=A^-1*b
%ex2求下列方程组
%x+2y+3z=5
%x+4y+9z=-2
%x+8y+27z=6
A=[1 2 3;1 4 9;1 8 27]
b=[5;-2;6]
x=inv(A)*b

%伪逆pinv()
%对于非方阵,奇异阵(是方阵,但行列式为0)
%非满秩矩阵(rank(A)~=n)
Aex2=[3 1 1 1;1 3 1 1;1 1 3 1]
rank(Aex2)%行满秩
A2ans=pinv(Aex2)
Aex2*A2ans

 

 二、矩阵求值

%方阵
%函数det(A)
A1=rand(5)
A1res=det(A1)

 %矩阵的秩与迹
A2=magic(4)
A2res=rank(A2)
A3=[2 2 -1 1;
    4 3 -1 2;
    8 5 -3 4;
    3 3 -2 2]
A3res=rank(A3)
%矩阵的迹
A4=magic(3)
A4res=trace(A4)


%向量和矩阵范数
%向量或矩阵的范数用来度量在某种意义下的长度。
%向量的范数
V=[1 2 3 4]
norm(V,1)%向量-1范数,元素绝对值之和
norm(V,2)%向量-2范数 元素平方和的平方根
norm(V,inf)%向量-无穷大范数 所有向量元素绝对值的最大值

%矩阵的范数
E=magic(4)
norm(E,1)%矩阵-1范数,所有矩阵列元素绝对值之和的最大值
norm(E,2)%矩阵-2范数 矩阵最大特征值的平方根
norm(E,inf)%矩阵-无穷大范数,所有矩阵行元素绝对值之和的最大值

 

 

%矩阵的条件数
%求解线性方程组AX=b时,考虑摄动对解向量的影响程度,影响大则成为病态矩阵,反之为良性矩阵
%引入条件数,用来表述病态或者良性的程度,属于矩阵的属性
%定义矩阵A的范数条件数为矩阵A的范数与矩阵A的逆的范数的乘积,条件数一定大于1,越接近1则越良性
F=rand(4)
F1=hilb(4)
cond(F,1)%范数为1的条件数
cond(F,2)%范数为2的条件数
cond(F,inf)%范数为无穷大的条件数

%希尔伯特-高度病态矩阵
cond(F1,1)
cond(F1,2)
cond(F1,inf)

 

 

%矩阵的特征值与特征向量
G=rand(5)
V1=eig(G)%求矩阵G的全部特征值,构成向量V1
[X,H1]=eig(G)%H为矩阵G全部特征值构成的对角阵,X各列是相应的特征向量

%注意:一个矩阵的特征向量含有无穷多个,eig函数只能找到n个
%但A的其他特征向量均可由这n个特征向量的线性组合表示出来

 

%稀疏矩阵:含有大量的0元素,含有少量的非0元素
A1=[2 0 0 0;
    0 0 0 0;
    0 -5 0 0;
    3 0 0 0 ]

%采用稀疏方式存储的矩阵
%按列存储
A2=[2 0 0 0 ;0 0 0 0 ;0 -5 0 0;3 0 0 0]
%普通存储2 0 0 3 0 0 -5 0 0 0 0 0 0 0 0 0 
%稀疏方式存储(1,1),2,(4,1),3,(3,2),-5
%节省内存资源

%稀疏存储方式产生sparse()
s1=sparse(A1)
s2=sparse(4,4)
%sparse(u,v,s)
s=[-5 24 9 17]%非0元素的值
u=[1 3 5 2]%行标号
v=[1 2 2 4]%列标号
s3=sparse(u,v,s)

%与稀疏矩阵操作有关的函数
%[u,v,s]=find(A)返回矩阵A中非0元素的下标和元素
[u1,v1,s0]=find(s3);
%返回稀疏矩阵的完全存储方式
full(s3)

 

 %创建对角稀疏矩阵spdiags()梳状稀疏矩阵
B=[0 1 4 9 0;
    4 7 9 0 3;
    0 2 3 4 9]
BZ=B.'
d=[-1,0,1].'%表示每条对角线位置
full(spdiags(BZ,d,5,5))

 %若d=[-1,0 2]
d=[-1,0 2]
full(spdiags(BZ,d,5,5))

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值