【问题标题】:How to enlarge matrix by repeating matrix rows? [duplicate]如何通过重复矩阵​​行来放大矩阵? [复制]
【发布时间】:2018-03-21 06:06:15
【问题描述】:

初始矩阵是A = [ [1 2 3; 4 5 6; 7 8 9]。每行将被复制 3 次,使得输出矩阵为

B = [1 2 3;1 2 3;1 2 3;4 5 6; 4 5 6; 4 5 6; 7 8 9; 7 8 9; 7 8 9]
B = replicate(permute(A,[3 2 1]),3,1)

【问题讨论】:

    标签: matlab matrix reshape


    【解决方案1】:

    你的意思是这样吗?

    kron(A,ones(3,1))
    

    ans =

     1     2     3
     1     2     3
     1     2     3
     4     5     6
     4     5     6
     4     5     6
     7     8     9
     7     8     9
     7     8     9
    

    【讨论】:

      【解决方案2】:

      R2015a开始,有一个专门的函数:repelem

      A = [1 2 3; 4 5 6; 7 8 9]
      B = repelem(A,3,1)
      

      B =
      
           1     2     3
           1     2     3
           1     2     3
           4     5     6
           4     5     6
           4     5     6
           7     8     9
           7     8     9
           7     8     9
      

      【讨论】:

        【解决方案3】:

        或者只是索引:

        A = [1 2 3; 4 5 6; 7 8 9]; % original matrix
        m = 3; % row repetition factor
        n = 1; % column repetition factor
        B = A(ceil(1/m:1/m:size(A,1)), ceil(1/n:1/n:size(A,2)));
        

        【讨论】:

          猜你喜欢
          • 2016-10-02
          • 2013-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-26
          • 2014-07-19
          相关资源
          最近更新 更多