[MATLAB] 矩阵构造及结构信息操作函数汇总

本文汇总MATLAB矩阵的构造以及结构操作的代码汇总。

1. 特殊矩阵的构造

函数名称函数功能
ones(n)构建n*n的元素全为1的矩阵
ones(m,n,…,p)构建m*n*…*p的元素全为1的矩阵
ones(size(A))构建与A矩阵相同大小的元素全为1的矩阵
zeros(n)构建n*n的元素全为0的矩阵
zeros(m,n,…,p)构建m*n*…*p的元素全为0的矩阵
zeros(size(A))构建与A矩阵相同大小的元素全为0的矩阵
eye(n)构建n*n的单位矩阵(主对角线为1,其余为0)
eye(m,n)构建m*n的单位矩阵
eye(size(A))构建与A矩阵相同大小的单位矩阵
--------
rand(n)构建n*n矩阵,元素为0~1之间均匀分布的随机数
rand(m,n,…,p)构建m*n*…*p矩阵,元素为0~1之间均匀分布的随机数
randn(n)构建n*n矩阵,元素为0均值、单位方差的正态分布随机数
randn(m,n,…,p)构建m*n*…*p矩阵,元素为0均值、单位方差的正态分布随机数
diag(x)构建n维矩阵,主对角线取自向量x,其余为0
diag(x,k)构建(n+abs(k))*(n+abs(k))的矩阵,第k条对角线元素取自向量x,其余为0(k=0时为主对角线,k<0为下第k条对角线,k>0为上第k条对角线,下同)
diag(A,k)构建由矩阵A第k条对角线的元素组成的列向量
triu(A)构建与A矩阵相同大小的上三角矩阵,上三角元素对应A矩阵,其余为0
triu(A,k)构建与A矩阵相同大小的上三角矩阵,第k条对角线及以上元素与A相同,其余为0
tril(A)构建与A矩阵相同大小的下三角矩阵,下三角元素对应A矩阵,其余为0
tril(A,k)构建与A矩阵相同大小的下三角矩阵,第k条对角线及以下元素与A相同,其余为0
hilb(n)构建n*n的希尔伯特矩阵
invhilb(n)构建n*n的希尔伯特矩阵的整数逆矩阵
--------
toeplitz(k,r)构建非对称托普利兹矩阵,第1列为k,第1行为r,其余元素等于其左上角元素,k与r皆为向量
toeplitz©构建用向量c构建的对称托普利兹矩阵
magic(n)构建n*n魔方矩阵,每一行、每一列和两对角线的元素和都相等
pascal(n)构建n阶对称正定帕斯卡矩阵,其元素由帕斯卡三角组成,逆矩阵元素皆为整数
pascal(n,1)构建由下三角Cholesky因子组成的对称帕斯卡矩阵
pascal(n,2)构建pascal(n,1)的转置矩阵,结果为单位矩阵的立方根
vander(v)构建范德蒙矩阵,矩阵列为向量v的幂,即v(i)^(n-j),其中n=length(v)
hadamard(k)构建阶数为2k的Hadamard矩阵,只有n能被4整除时矩阵才存在
compan(u)构建特征多项式为u的伴随矩阵
hankel(x)构建由向量x定义的Hankel对称矩阵,其元素为(i,j)=x(i+j-a),第1列为向量x,反三角以下为0
hankel(x,y)构建m*n的Hankel矩阵,第1列为向量x,最后1行为向量y
rosser构建8*8的双精度Rosser矩阵(用于计算特征值算法)
wilkinson(n)构建n*n的Wilkinson特征值测试矩阵

2. 矩阵大小和结构

函数名称函数功能
fliplr(A)矩阵每一行逆序排列
flipud(A)矩阵每一列逆序排列
flip(A,dim)在dim维度上反转A矩阵元素的顺序
rot90(A)将矩阵A逆时针旋转90°
rot90(A,k)将矩阵A逆时针旋转k*90°
reshape(A,m,n,…,p)生成m*n*…*p矩阵,值以线性顺序从A中排列,需要A中元素有m*n*…*p个
repmat(A,[m n … p])创建与A矩阵有相同元素的m*n*…*p多维矩阵
shiftdim(A,n)矩阵的列移动n步,n>0时左移,n<0时右移
squeeze(A)删除A矩阵中的单一维度
permute(A,order)根据向量order改变矩阵A的维数顺序
ipermute(A,order)permute函数的逆变换
sort(A)对矩阵A的元素升序排序,当A为二维矩阵时,对每一列分别排序
sort(A,dim)当dim=1时,对矩阵列排序;当dim=2时,对矩阵行排序
sort(A,dim,mode)当mode='ascend’时,升序排序;当mode='descend’时,降序排序

3. 矩阵下标引用

函数名称函数功能
sub2ind(size(A),i,j)按排列顺序计数将双下标转换为单下标
ind2sub(size(A),ind)单下标转换为双下标

4. 获取矩阵信息

矩阵信息主要有:矩阵结构、大小、维度、数据类型、内存占用。

函数名称函数功能
isempty(A)矩阵是否为空
isscalar(A)矩阵是否为单元素标量矩阵
isvector(A)矩阵是否为只有一行或一列的一维向量
issparse(A)矩阵是否为稀疏矩阵
--------
n=ndims(A)获取矩阵维度
[m,n]=size(A)获取矩阵大小
n=length(A)获取矩阵最长维度的长度
n=numel(A)获取矩阵元素个数
--------
isnumeric(A)矩阵元素是否为数值型变量
isreal(A)矩阵元素是否为实数型变量
isfloat(A)矩阵元素是否为浮点型变量
isinteger(A)矩阵元素是否为整数型变量
islogical(A)矩阵元素是否为逻辑型变量
ischar(A)矩阵元素是否为字符型变量
isstruct(A)矩阵元素是否为结构体型变量
iscell(A)矩阵元素是否为元胞型变量
iscellstr(A)矩阵元素是否为结构体的元胞型变量
--------
x=find(条件)按条件查找矩阵中的元素并以列向量形式返回单下标
[row,col]=find(条件)按条件查找矩阵中的元素并以列排列形式返回双下标

5. 矩阵合并

函数名称函数功能
cat(dim,A,B)合并矩阵A和B。当dim=1时按行(竖直)合并,当dim=2时按列(水平)合并
horzcat(A,B)类似于cat(2,A,B),按列合并矩阵
vertcat(A,B)类似于cat(1,A,B),按行合并矩阵
blkdiag(A,B,…,N)用多矩阵构造块对角化矩阵,主对角线分别为A、B、…、N,其余为0,维度大小为各矩阵之和

6. 矩阵计算

函数名称函数功能
sum(A)对矩阵A各列元素求和
sum(A,dim)当dim=1时,按列求和;当dim=2时,按行求和
cumsum(A,dim)与sum类似,但在结果矩阵中保留计算过程值
sum(sum(A))求矩阵所有元素和
prod(A)对矩阵A的各列元素求乘积
prod(A,dim)当dim=1时,按列求积;当dim=2时,按行求积
cumprod(A,dim)与prod类似,但在结果矩阵中保留计算过程值
diff(A)计算矩阵A的各列元素的差分
diff(A,n)计算矩阵A各列元素的n阶差分(当n>=size(x,dim)时,返回空矩阵)
diff(A,n,dim)当dim=1时,按列求差分;当dim=2时,按行求差分
norm(A)求矩阵A或向量A的范数(向量为2-范数、模或欧几里徳长度,矩阵为2-范数或最大奇异值)
norm(A,p)求矩阵或向量的p-范数,p常取1、2、inf、-inf。
normest(A)估算矩阵的2-范数
normest(A,tol)使用tol作为允许的相对误差估算2-范数
rank(A)默认允许误差下计算矩阵的秩
rand(A,tol)以tol为允许误差计算矩阵的秩,其中tol=max(size(A))*eps(norm(A))
det(A)计算矩阵行列式
trace(A)计算矩阵的迹(对角元素和)
null(A)计算矩阵的化零矩阵,若不存在则返回空矩阵
null(A,‘r’)返回有理数形式的化零矩阵
orth(A)计算矩阵的正交空间
rref(A)返回矩阵A的约化行阶梯式
[R,jb]=rref(A)R为约化行阶梯式,jb为1*r的向量,其中r为矩阵的秩
[R,jb]=rref(A,tol)计算矩阵的约化行阶梯式,并以tol为允许相对误差计算秩
subspace(A,B)计算两矩阵空间夹角

7. 矩阵分解

函数名称函数功能
R=chol(X)对称正定矩阵的Cholesky分解,X为对称正定矩阵,R为上三角矩阵,且满足X=R’ * R
[R,p]=chol(X)X为正定矩阵时,与上相同且p=0;X为非正定矩阵时,p为正整数,R为上三角矩阵且阶数为p-1,且满足X(1:p-1,1:p-1)=R’ * R
[L,U]=lu(X)将矩阵X分解为下三角矩阵L和上三角矩阵U,且X=L*U
[L,U,P]=lu(X)将矩阵X分解为下三角矩阵L、上三角矩阵U和置换矩阵P,且PX=LU
Y=lu(X)将矩阵X分解,上三角矩阵和下三角矩阵合并在矩阵Y中,其对角元素为上三角矩阵的对角元素,即Y=L+U-I,置换矩阵信息丢失。
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值