如何在不使用repmat函数的情况下复制矩阵的元素

zal*_*eha 2 matlab matrix

给定矩阵I = [1,2;3,4],我想复制元素以创建矩阵I2,以便:

I2 = [1 1 1 2 2 2
      1 1 1 2 2 2
      1 1 1 2 2 2
      3 3 3 4 4 4 
      3 3 3 4 4 4
      3 3 3 4 4 4]
Run Code Online (Sandbox Code Playgroud)

除了使用之外repmat,还有哪些其他方法或功能?

ray*_*ica 7

用途kron:

>> N = 3 %// Number of times to replicate a number in each dimension
>> I = [1,2;3,4];
>> kron(I, ones(N))

ans =

     1     1     1     2     2     2
     1     1     1     2     2     2
     1     1     1     2     2     2
     3     3     3     4     4     4
     3     3     3     4     4     4
     3     3     3     4     4     4
Run Code Online (Sandbox Code Playgroud)

如果你不知道是什么kron,这可能值得一些解释. kron代表Kronecker Tensor产品. kron在两个A大小m x nB大小的矩阵之间p x q创建一个大小的输出矩阵,mp x nq使得:

因此,对于每个系数in A,我们取这个值,将它与矩阵中的每个值相乘,B然后我们按照我们看到的顺序定位这些矩阵A.因此,如果我们让A = I,并且B是3 x 3矩阵充满1,那么你就得到了上述结果.

  • 如果我没有回答你的评论,我会发布这个:D - +1 (2认同)