您的位置:首页 > 编程语言 > MATLAB

关于Matlab的几个矩阵生成函数,分析函数和分解函数

2020-07-15 05:39 232 查看

前几天做了两道矩阵的题,用matlab实现对矩阵的运算。在做的时候查阅了一些函数,今天整理了一下关于mtalab矩阵运算的函数

创建二维数组

方法一:使用“[]”操作符

  • 数据元素必须要在[]中进行输入;
  • 行与行之间须用分号“;”间隔,也可以用回车键进行分割
  • 行间元素用空格或者“,”间隔
    例: a=[1,2,3;4,5,6;7,8,9]

    方法二:命令函数
  • ones :生成全1矩阵
    ones(3) 3x3矩阵
    ones(3,4) 3x4矩阵
  • zeros:生成全0矩阵
  • reshape
    例:a=-4:4
    b=reshape(a,3,3)
    生成一个3x3的矩阵,矩阵元素为a中数据。先从上到下,后从左到右的顺序进行排列,要求数组的总数不变,如下图
  • eye生成单位矩阵
  • magic 生成魔方阵
  • rand:生成0~1范围的随机矩阵
    rand(10) 10阶矩阵
    rand(3,4) 3X4矩阵 取值范围0~1
    例·
    i=a+(b-a)*rand(m,n) 生成mxn矩阵,取值范围在(a,b)
  • round为取整函数,取整规则为四舍五入,如果要取整数,前面加一个round就可以
  • 例 i=1+round((10-1)*rand(5,4))
  • randn:产生均值为0,方差为1的标准正态随机矩阵
  • randi :产生随机分布的伪随机整数
    用法如下:
    a=randi(imax,n) 最大值为imax的 nxn矩阵

    a=randi(imax,m,n) 最大值为imax的 mxn矩阵

    a=randi([imin,imax],m,n) 在imin,imax上进行取值的矩阵

矩阵分析函数

对角矩阵

  • diag(a)
    当a为一个m个元素的向量的时候,diag(a)将生成一个mxm的对角矩阵,其主对角元素就是向量a的原数

    当 a是一个mxm的矩阵,diag(a)将产生一个m维向量,其元素为矩阵a对角线

    求逆矩阵
    inv(a)

    求矩阵行列式的值:det(a) 矩阵a和上图一致

    矩阵秩:rank(a)

    矩阵上三角:b=triu(a)

    矩阵下三角:b=tril(a)

    化行最简形:rref(a)

    方阵特征值
    矩阵特征方程 f=poly(a)

    特征值 eig(a)

    齐次线性方程组的基础解析x=null(a)
    特征值和特征向量[P,D]=eig(a)

    其中P的列向量是特征向量,D的对角线元素为其所对应特征向量的特征值
    线性方程组求解 Ax=b :x=inv(A)*b 或者 A\b
    范数:norm
    概念:范数常常用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小。半范数可以为非零的矢量赋予零长度。
    我们在matlab上help一下范数的格式以及应用如下
    norm(X,2)返回的是矩阵和向量的2范数,当然默认的norm(X)定义的就是2范数哦~
    norm(X,1)返回的是向量的1范数;
    norm(X,Inf)返回的是向量的无穷范数;
    norm(X,‘fro’)返回的是矩阵和向量的frobenius范数

矩阵分解

QR分解
[Q,R]=qr(a); %QR分解Q为正交矩阵,R为上三角矩阵a=QR
LU分解
[L,U,P]=lu(a) ; %LU分解U为上三角,L为发生行变换的下三角 a=UL 其中P为置换矩阵
奇异值分解
[u,siqea,v]=svd(a); %奇异值分解u正交矩阵,
siqea对角矩阵,v正交矩阵
Jordan分解
[X,J]=jordan(a); %x为变换矩阵y为对角矩阵

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: