• matlab的常用函数



    -- date: 2022/1/18
    -- title: matlab的基础使用
    -- author: longRookie


    一、常用函数

    1.1 创建矩阵

    【函数说明】直接输入矩阵数值,分号代表行间隔,创建数值矩阵。

    >> A=[1 3 5;2 4 6;7 8 9]
    
    A =
    
         1     3     5
         2     4     6
         7     8     9
    

    1.2 zeros函数:创建全0矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) A=zeros(n): 创建\(n \times n\) 全0矩阵。

    \(\color{red}{\rightarrow}\) A=zeros(n,m): 创建\(n \times m\)全0矩阵。

    \(\color{red}{\rightarrow}\) A=zeros(size(B)): 创建与矩阵B相同大小的全0矩阵。

    >> A=zeros(3);
    >> A
    
    A =
    
         0     0     0
         0     0     0
         0     0     0
    
    >> A=zeros(2,3);
    >> A
    
    A =
    
         0     0     0
         0     0     0
    

    1.3 eye函数:创建单位矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) A=eye(n): 创建\(n\times n\)单位矩阵。

    \(\color{red}{\rightarrow}\) A=eye(n,m): 创建$n\times m $单位矩阵。

    \(\color{red}{\rightarrow}\) A=eye(size(B)): 创建与矩阵B相同大小的单位矩阵。

    >> A=eye(3,4);
    >> A
    
    A =
    
         1     0     0     0
         0     1     0     0
         0     0     1     0
    

    1.4 ones函数:创建全1矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) A=ones(n): 创建\(n\times n\)全1矩阵。

    \(\color{red}{\rightarrow}\) A=ones(n,m): 创建$n\times m $ 全1矩阵。

    \(\color{red}{\rightarrow}\) A=ones(size(B)): 创建与矩阵B相同大小的全1矩阵。

    >> A=ones(3);
    >> A
    
    A =
    
         1     1     1
         1     1     1
         1     1     1
    

    1.5 rand函数: 创建均匀分布随机函数

    【函数说明】

    \(\color{red}{\rightarrow}\) A=rand(n): 创建$n \times n $维均匀分布随机矩阵,其元素在(0,1)内

    \(\color{red}{\rightarrow}\) A=rand(n,m): 创建$n\times m $ 均匀分布随机矩阵

    \(\color{red}{\rightarrow}\) A=rand(size(B)): 创建与矩阵B相同大小的均匀分布随机矩阵

    >> A = rand(4);
    >> A
    
    A =
    
        0.8147    0.6324    0.9575    0.9572
        0.9058    0.0975    0.9649    0.4854
        0.1270    0.2785    0.1576    0.8003
        0.9134    0.5469    0.9706    0.1419
    
    >> A = rand(3,4);
    >> A
    
    A =
    
        0.4218    0.9595    0.8491    0.7577
        0.9157    0.6557    0.9340    0.7431
        0.7922    0.0357    0.6787    0.3922
    

    1.6 randn函数: 创建正态分布随机矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) A = randn(n): 创建\(n\times n\)正态随机矩阵。

    \(\color{red}{\rightarrow}\) A=randn(n,m): 创建$n\times m $正态随机矩阵。

    \(\color{red}{\rightarrow}\) A=randn(size(B)): 创建与矩阵B相同大小的正态分布随机矩阵。

    >> A=randn(3,5);
    >> A
    
    A =
    
        0.2939   -1.1471   -2.9443   -0.7549   -0.1022
       -0.7873   -1.0689    1.4384    1.3703   -0.2414
        0.8884   -0.8095    0.3252   -1.7115    0.3192
    

    1.7 hankel函数:创建Hankel矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) A=hankel(n): 第一列元素为n,反三角以下元素为0。

    \(\color{red}{\rightarrow}\) A=hankel(n,m): 第一列元素为m,最后一行元素为m,如果n的最后一个元素与m的第一个元素不同,则交叉位置取n的最后一个元素。

    【矩阵说明】

    汉克尔矩阵是指每一条逆对角线上的元素都相等的矩阵。

    >> n = [3 2 1];
    >> m = [1 5 9];
    >> A = hankel(n,m);
    >> A
    
    A =
    
         3     2     1
         2     1     5
         1     5     9
    
    >> A=hankel(n);
    >> A
    
    A =
    
         3     2     1
         2     1     0
         1     0     0
    

    1.8 topelitz函数:创建Topelitz矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) A= toeplitz(n): 用向量n创建一个对称Toeplitz矩阵。

    \(\color{red}{\rightarrow}\) A=topelitz(n,m):第一列元素为n,第一行元素为m,如果n的第一个元素与m的第一个元素不同,则交叉位置元素取n的第一个元素。

    【矩阵说明】

    托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等。

    >> n=[1 2 3 4];
    >> m = [1 5 8 9];
    >> A=toeplitz(n);
    >> A
    
    A =
    
         1     2     3     4
         2     1     2     3
         3     2     1     2
         4     3     2     1
    
    >> A=toeplitz(n,m);
    >> A
    
    A =
    
         1     5     8     9
         2     1     5     8
         3     2     1     5
         4     3     2     1
    

    1.9 det函数:计算方阵行列式

    【函数说明】

    \(\color{red}{\rightarrow}\) det(A):计算方阵A的行列式

    【注】

    了解代数余子式

    >> A=[1 3 6;2 4 5;1 2 3];
    >> A
    
    A =
    
         1     3     6
         2     4     5
         1     2     3
    
    >> det(A)
    
    ans =
    
        -1
    

    1.10 inv函数:求方阵的逆矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) inv(A):计算方阵A的逆矩阵\(A^{-1}\)

    【注】

    了解伴随矩阵,\(A^{-1}=\frac{1}{|A|}A^*\)

    矩阵有逆的充要条件。

    >> A= [1 3 6;2 4 5;1 2 3];
    >> inv(A)
    
    ans =
    
        -2    -3     9
         1     3    -7
         0    -1     2
    

    1.11 pinv函数:求矩阵的伪逆矩阵

    【函数说明】

    \(\color{red}{\rightarrow}\) pinv(A):计算矩阵A的伪逆矩阵\(A^+\)

    【矩阵说明】

    与A的转置矩阵\(A^T\)同型,并且满足\(AXA=A,XAX=X\),此时矩阵X为矩阵A的伪逆矩阵。如果A为非奇异矩阵,pinv(A)=inv(A),但inv(A)花费时间更少。

    >> A=[1 3 6;2 4 5;1 2 3;1 1 1];
    >> pinv(A)
    
    ans =
    
        0.1579   -0.8421    0.3684    2.1579
       -0.6842    1.3158   -0.2632   -1.6842
        0.4737   -0.5263    0.1053    0.4737
    

    1.12 rank函数:求矩阵的逆

    【函数说明】

    \(\color{red}{\rightarrow}\) rank(A):计算矩阵A的秩;

    【注】

    分为行秩和列秩;对应线性无关的最大行数和列数;

    >> A=[1 3 6; 2 4 5; 1 2 3];
    >> rank(A)
    
    ans =
    
         3
    

    1.13 diag函数:抽取矩阵对角线元素

    【函数说明】

    \(\color{red}{\rightarrow}\) A=diag(m):以m为主对角线元素,其余元素为0。

    \(\color{red}{\rightarrow}\) m=diag(A):取矩阵A的主对角线元素构造向量m。

    >> A=[1 3 6;2 4 5;1 2 3];
    >> m=diag(A)
    
    m =
    
         1
         4
         3
    
    >> m=[1 2 3];
    >> A=diag(m)
    
    A =
    
         1     0     0
         0     2     0
         0     0     3
    

    1.14 fliplr函数:矩阵左右翻转

    【函数说明】

    \(\color{red}{\rightarrow}\) fliplr(A):将矩阵A左右翻转。

    >> A=[1 3 6;2 4 5;1 2 3]
    
    A =
    
         1     3     6
         2     4     5
         1     2     3
    
    >> fliplr(A)
    
    ans =
    
         6     3     1
         5     4     2
         3     2     1
    

    1.15 eig函数:矩阵特征值分解

    【函数说明】

    \(\color{red}{\rightarrow}\) d = eig(A):计算A的特征值。

    \(\color{red}{\rightarrow}\) d = eig(A,B):计算A的广义特征值。

    \(\color{red}{\rightarrow}\) [V,D]=eig(A):计算A的特征值对角阵D和特征向量构成的矩阵V。

    \(\color{red}{\rightarrow}\) [V,D]=eig(A,B):计算A的广义特征值对角阵D和广义特征向量构成的矩阵V。

    【注】

    A是n阶向量,如果存在数m和非零n维列向量x,使Ax=mx成立,则称m是矩阵A的一个特征值,非零向量x称为特征值\(\lambda\)的特征向量。

    代数重数和几何重数

    >> A=[1 3 6;2 4 5;1 2 3];
    >> [V,D]=eig(A);
    >> V
    
    V =
    
       -0.5970   -0.9433    0.6669
       -0.7083    0.3209   -0.6977
       -0.3767    0.0847    0.2615
    
    >> D
    
    D =
    
        8.3451         0         0
             0   -0.5594         0
             0         0    0.2142
    
    >> 
    

    1.16 svd函数:矩阵奇异值分解

    【函数说明】

    \(\color{red}{\rightarrow}\) s=svd(A):计算矩阵A的奇异值向量;

    \(\color{red}{\rightarrow}\) [U,S,V]=svd(A):计算A的奇异值对角阵S和两个友矩阵U和V

    【注】

    奇异值相当于方阵中的特征值,奇异值分解相当于方阵中的特征值分解。

    奇异值分解的揭秘(一):矩阵的奇异值分解过程 - 知乎 (zhihu.com)

    特征值分解 和 SVD分解 - 知乎 (zhihu.com)

    >> A=[1 3 6;2 4 5;1 2 3];
    >> [U,S,A]=svd(A);
    >> U
    
    U =
    
       -0.6608    0.7306   -0.1718
       -0.6544   -0.6730   -0.3447
       -0.3675   -0.1154    0.9228
    
    >> S
    
    S =
    
       10.1722         0         0
             0    1.2331         0
             0         0    0.0797
    
    >> A
    
    A =
    
       -0.2298   -0.5926    0.7720
       -0.5245   -0.5928   -0.6112
       -0.8198    0.5453    0.1746
    

    1.17 矩阵转置和共轭转置

    【函数说明】

    \(\color{red}{\rightarrow}\) \(A.'\):计算A的转置矩阵。

    \(\color{red}{\rightarrow}\) \(A'\):计算A的共轭转置矩阵。

    >> A= randn(2,3)+j*randn(2,3); %创建一个复矩阵
    >> A
    
    A =
    
     列 1 至 2
    
      0.5377 - 0.4336i  -2.2588 + 3.5784i
      1.8339 + 0.3426i   0.8622 + 2.7694i
    
     列 3
    
      0.3188 - 1.3499i
     -1.3077 + 3.0349i
    
    >> A'
    
    ans =
    
      0.5377 + 0.4336i   1.8339 - 0.3426i
     -2.2588 - 3.5784i   0.8622 - 2.7694i
      0.3188 + 1.3499i  -1.3077 - 3.0349i
    
    >> A.'
    
    ans =
    
      0.5377 - 0.4336i   1.8339 + 0.3426i
     -2.2588 + 3.5784i   0.8622 + 2.7694i
      0.3188 - 1.3499i  -1.3077 + 3.0349i
    

    1.18 awgn函数:添加高斯白噪声

    【函数说明】

    \(\color{red}{\rightarrow}\) Y=awgnl(X,SNR):向信号X添加高斯白噪声,信噪比SNR单位为dB。信号X的功率假定为0dBW。

    \(\color{red}{\rightarrow}\) Y=awgn(X,SNR,sigpower):向信号X添加高斯白噪声,信噪比SNR单位为dB。信号X的功率为sigpower(dBW)。

    \(\color{red}{\rightarrow}\) Y=awgn(X,SNR,'measured'):向信号X添加高斯白噪声,信噪比SNR单位为dB。在添加噪声前计算信号X功率(dBW)。

    >> X=randn(2,5); %产生一随机信号
    >> X
    
    X =
    
        0.7254    0.7147   -0.1241    1.4090    0.6715
       -0.0631   -0.2050    1.4897    1.4172   -1.2075
    
    >> Y=awgn(X,10,'measured');
    >> Y
    
    Y =
    
        0.9432    0.8632    0.0966    1.4983    0.9413
        0.4320    0.1092    1.3976    1.1781   -1.5558
    

    1.19 sin函数:正弦函数

    【函数说明】

    \(\color{red}{\rightarrow}\) \(y=\sin(x)\):返回x中各元素的正弦值,x单位为弧度(rad)。

    1.20 cos函数:余弦函数

    【函数说明】

    \(\color{red}{\rightarrow}\) \(y=\cos(x)\):返回x中各元素的余弦值,x单位为弧度(rad)。

    1.21 tan函数:正切函数

    【函数说明】

    \(\color{red}{\rightarrow}\) \(y=\tan(x)\):返回x中各元素的正切值,x单位为弧度(rad)。

    1.22 asin函数:反正弦函数

    【函数说明】

    \(\color{red}{\rightarrow}\) \(y=asin(x)\):返回x中各元素的反正弦值,y单位为弧度(rad)。

    1.23 acos函数:反余弦函数

    【函数说明】

    \(\color{red}{\rightarrow}\) \(y=acos(x)\):返回x中各元素的反余弦值,y单位为弧度(rad)。

    1.24 atan函数:反正切函数

    【函数说明】

    \(\color{red}{\rightarrow}\) \(y= atan(x)\):返回x中各元素的反正弦值,x单位为弧度(rad)。

    1.25 abs函数:求复数的模

    【函数说明】

    \(\color{red}{\rightarrow}\) y=abs(x):如果x是实数,返回x的绝对值;如果x是复数,返回x的模。

    >> a= -1;
    >> b=1+1j;
    >> abs(a)
    
    ans =
    
         1
    
    >> abs(b)
    
    ans =
    
        1.4142
    

    1.26 angle函数:求复数的相位角

    【函数说明】

    \(\color{red}{\rightarrow}\) y=angle(x):返回复数x的相位角,单位为弧度(rad)。

    【注】

    将复数用向量的形式在直角坐标系中表示出来,向量与X轴正半轴的夹角就是该复数的相位角.

    1.27 real函数:求复数的实部

    【函数说明】

    \(\color{red}{\rightarrow}\) y=real(x):返回复数x的实数部分。

    >> a=1+1j
    
    a =
    
       1.0000 + 1.0000i
    
    >> real(a)
    
    ans =
    
         1
    

    1.28 imag函数:求复数的虚部

    【函数说明】

    \(\color{red}{\rightarrow}\) y=imag(x):返回复数x的虚部部分

    >> a=1+1j
    
    a =
    
       1.0000 + 1.0000i
    
    
    >> imag(a)
    
    ans =
    
         1
    

    1.29 sum函数:求和函数

    【函数说明】

    \(\color{red}{\rightarrow}\) B=sum(A):如果A为一向量,返回各元素之和;如果A为矩阵,返回各列元素之和构成的一个行向量。

    \(\color{red}{\rightarrow}\) B=sum(A,dim):沿着dim指定的维数求和,其中\(dim \in [1,N]\),N为矩阵维数。当dim取1时,返回列向量之和构造的行向量;当dim取2时,返回行向量之和构造的列向量。

    >> A=[1 3 6;2 4 5;1 1 1];
    >> sum(A,1)
    
    ans =
    
         4     8    12
    
    >> sum(A,2)
    
    ans =
    
        10
        11
         3
    
    >> sum(A)
    
    ans =
    
         4     8    12
    

    1.30 max函数:求最大值函数

    【函数说明】

    \(\color{red}{\rightarrow}\) B=max(A):如果A为一向量,返回各元素之中的最大值;如果A是矩阵,返回各列元素最大值构成的一个行向量。

    \(\color{red}{\rightarrow}\) B=max(A,[],dim):沿着dim指定的维数求最大值,其中\(dim \in [1,N]\),N为矩阵维数。当dim取1时,返回列向量最大值构成的行向量;当dim取2时,返回行向量最大值构造的列向量。

    >> A=[1 3 6;2 4 5;1 2 3;1 1 1];
    >> max(A,[],1)
    
    ans =
    
         2     4     6
    
    >> max(A,[],2)
    
    ans =
    
         6
         5
         3
         1
    
    >> max(A)
    
    ans =
    
         2     4     6
    

    1.31 min函数:求最小值函数

    【函数说明】

    \(\color{red}{\rightarrow}\) B=min(A):如果A为一向量,返回各元素之中的最小值;如果A是矩阵,返回各列元素最小值构成的一个行向量。

    \(\color{red}{\rightarrow}\) B=min(A,[],dim):沿着dim指定的维数求最小值,其中\(dim \in [1,N]\),N为矩阵维数。当dim取1时,返回列向量最小值构成的行向量;当dim取2时,返回行向量最小值构造的列向量。

    >> A=[1 3 6;2 4 5;1 2 3;1 1 1];
    >> min(A)
    
    ans =
    
         1     1     1
    
    >> min(A,[],1)
    
    ans =
    
         1     1     1
    
    >> min(A,[],2)
    
    ans =
    
         1
         2
         1
         1
    

    1.32 sort函数:排序函数

    【函数说明】

    \(\color{red}{\rightarrow}\) B=sort(A):如果A为一向量,则将A中各元素按从小到大排序;如果A为矩阵,则将A中各列元素按从小到大排序。

    \(\color{red}{\rightarrow}\) B=sort(A,dim):沿着dim指定的顺序排序,当dim取1时,则将A中各列元素按从小到大排序;当dim取2时,则将A中各行元素从小到大排序。

    \(\color{red}{\rightarrow}\) B=sort(...,mode):将矩阵中元素按指定模式排列,当mode=’ascend‘时,则按从小到大排序;当mode='descend'时,则按从大到小排序。

    \(\color{red}{\rightarrow}\) [B,V]=sort(A),将A排序,并返回一个与A同形的矩阵V,指定B矩阵中各元素在A中的位置。V是一个排序索引。

    【注】

    对数组元素排序 - MATLAB sort - MathWorks 中国

    1.33 poly2sym函数:创建多项式

    【函数说明】

    \(\color{red}{\rightarrow}\) y=poly2sym(c):返回一个符号多项式。其中,参数c为保存多项式的系数的向量。

    \(\color{red}{\rightarrow}\) y=poly2sym(c,'t'):返回一个符号多项式。其中,参数c为保存多项式的系数的向量,t为符号变量。

    >> c=[1 2 5 7]
    
    c =
    
         1     2     5     7
    
    >> y=poly2sym(c);
    >> y
     
    y =
     
    x^3 + 2*x^2 + 5*x + 7
    

    1.34 sym2poly函数:符号多项式转换为数值多项式

    \(\color{red}{\rightarrow}\) c=sym2poly(y):返回符号多项式y的数值系数构成的行向量。

    >> syms x;
    >> y=x^3+2*x^2+5*x+7;
    >> c=sym2poly(y);
    >> c
    
    c =
    
         1     2     5     7
    

    1.35 roots函数:多项式求根

    \(\color{red}{\rightarrow}\) r=roots(c):返回一个由多项式根构成的列向量。

    >> c=[1,2,5,7];
    >> r=roots(c);
    >> r
    
    r =
    
      -0.1981 + 2.0797i
      -0.1981 - 2.0797i
      -1.6038 + 0.0000i
    

    1.36 size函数:求矩阵大小

    \(\color{red}{\rightarrow}\) [m,n]=size(A):分别返回矩阵的行数和列数。

    >> A=[1 2 3 4;5 6 7 8];
    >> A
    
    A =
    
         1     2     3     4
         5     6     7     8
    
    >> [m,n] = size(A);
    >> m
    
    m =
    
         2
    
    >> n
    
    n =
    
         4
    
  • 相关阅读:
    PageRank
    Web挖掘
    无监督学习
    Activiti 学习笔记记录(2016-8-31)
    Activiti 学习笔记记录(二)
    Activiti 学习笔记记录
    Mybatis + SpringMVC + Maven实现分页查询
    Jquery.min.js 下载
    使用Apache Archiva搭建Maven Repository Server
    SpringMVC 参数传递
  • 原文地址:https://www.cnblogs.com/AccompanyingLight/p/15820542.html
Copyright © 2020-2023  润新知