• MATLAB中“repmat”与“cat”函数的用法


    MATLAB中“repmat”与“cat”函数的用法

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

    1. repmat函数

    >> z=repmat(5,2,3)
    
    z =
    
         5     5     5
         5     5     5
    
    >> y=repmat([6,5;7,9],3,4)
    
    y =
    
         6     5     6     5     6     5     6     5
         7     9     7     9     7     9     7     9
         6     5     6     5     6     5     6     5
         7     9     7     9     7     9     7     9
         6     5     6     5     6     5     6     5
         7     9     7     9     7     9     7     9
    
    >> x=repmat([1:5;2:6],2,3)
    
    x =
    
         1     2     3     4     5     1     2     3     4     5     1     2     3     4     5
         2     3     4     5     6     2     3     4     5     6     2     3     4     5     6
         1     2     3     4     5     1     2     3     4     5     1     2     3     4     5
         2     3     4     5     6     2     3     4     5     6     2     3     4     5     6
    

    repmat函数中第一个值是元素(或向量、矩阵)的值,第二个值为行数,第三个为列数。

    z=repmat(5,2,3),生成2行3列元素为5的矩阵。

    y=repmat([6,5;7,9],3,4),生成3行5列元素为[6,5;7,9]的分块矩阵。

    x=repmat([1:5;2:6],2,3),生成3行5列元素为[1,2,3,4,5;2,3,4,5,6]的分块矩阵。

    2. cat函数

    先生成一些大小相同的矩阵

    >> a=repmat(5,3,5)
    
    a =
    
         5     5     5     5     5
         5     5     5     5     5
         5     5     5     5     5
    
    >> b=repmat(6,3,5)
    
    b =
    
         6     6     6     6     6
         6     6     6     6     6
         6     6     6     6     6
    
    >> c=repmat(7,3,5)
    
    c =
    
         7     7     7     7     7
         7     7     7     7     7
         7     7     7     7     7
    
    >> d=repmat(8,3,5)
    
    d =
    
         8     8     8     8     8
         8     8     8     8     8
         8     8     8     8     8
    

    下面为cat函数的用法

    >> e=cat(1,a,b,c,d)
    
    e =
    
         5     5     5     5     5
         5     5     5     5     5
         5     5     5     5     5
         6     6     6     6     6
         6     6     6     6     6
         6     6     6     6     6
         7     7     7     7     7
         7     7     7     7     7
         7     7     7     7     7
         8     8     8     8     8
         8     8     8     8     8
         8     8     8     8     8
    
    >> f=cat(2,a,b,c,d)
    
    f =
    
         5     5     5     5     5     6     6     6     6     6     7     7     7     7     7     8     8     8     8     8
         5     5     5     5     5     6     6     6     6     6     7     7     7     7     7     8     8     8     8     8
         5     5     5     5     5     6     6     6     6     6     7     7     7     7     7     8     8     8     8     8
    
    >> g=cat(3,a,b,c,d)
    
    g(:,:,1) =
    
         5     5     5     5     5
         5     5     5     5     5
         5     5     5     5     5
    
    
    g(:,:,2) =
    
         6     6     6     6     6
         6     6     6     6     6
         6     6     6     6     6
    
    
    g(:,:,3) =
    
         7     7     7     7     7
         7     7     7     7     7
         7     7     7     7     7
    
    
    g(:,:,4) =
    
         8     8     8     8     8
         8     8     8     8     8
         8     8     8     8     8
    
    >> h=cat(4,a,b,c,d)
    
    h(:,:,1,1) =
    
         5     5     5     5     5
         5     5     5     5     5
         5     5     5     5     5
    
    
    h(:,:,1,2) =
    
         6     6     6     6     6
         6     6     6     6     6
         6     6     6     6     6
    
    
    h(:,:,1,3) =
    
         7     7     7     7     7
         7     7     7     7     7
         7     7     7     7     7
    
    
    h(:,:,1,4) =
    
         8     8     8     8     8
         8     8     8     8     8
         8     8     8     8     8
    

    一般用到三维,四维及以上很少用。

    e=cat(1,a,b,c,d),将a, b, c, d矩阵按列排。

    f=cat(2,a,b,c,d),将a, b, c, d矩阵按行排。

    g=cat(3,a,b,c,d),g是一个三维阵(3*5*4),前两个维度和a, b, c, d的大小一样,第三个维度为a, b, c, d矩阵的个数:4。

    h=cat(4,a,b,c,d),h是一个四维阵,h(:,:,1,i)=h(:,:,i)。如下所示:

    >> h(:,:,1)
    
    ans =
    
         5     5     5     5     5
         5     5     5     5     5
         5     5     5     5     5
    
    >> h(:,:,2)
    
    ans =
    
         6     6     6     6     6
         6     6     6     6     6
         6     6     6     6     6
    
    >> h(:,:,3)
    
    ans =
    
         7     7     7     7     7
         7     7     7     7     7
         7     7     7     7     7
    
    >> h(:,:,4)
    
    ans =
    
         8     8     8     8     8
         8     8     8     8     8
         8     8     8     8     8
    

    以上就是repmat与cat函数的简单用法。

     

  • 相关阅读:
    Linux网络检测手段汇总
    Hadoop单机搭建
    Nginx之Location模块
    关于STM32驱动DS1302实时时钟的一点思考
    灵感手环第一步——0.96寸OLED显示实验
    把简单做到极致
    KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data
    关于SPI通信原理与程序实现
    【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因
    关于keil5使用注意事项(预定义、路径包含)
  • 原文地址:https://www.cnblogs.com/kailugaji/p/10741135.html
Copyright © 2020-2023  润新知