如何将矩阵的大小加倍并在Matlab中传播其元素?

Meh*_*ran 2 size matlab matrix vectorization

假设我有一个这样的矩阵:

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

我想将矩阵的大小加倍并创建如下内容:

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

以这种方式,第一矩阵中的每个元素传播到较大矩阵中的四个元素.

a(i,j) == aa(2*i-1, 2*j-1)
       == aa(2*i  , 2*j-1)
       == aa(2*i-1, 2*j)
       == aa(2*i  , 2*j)
Run Code Online (Sandbox Code Playgroud)

是否有任何预定义的功能来做到这一点?

我绝对可以通过两个循环来做到这一点,但我想要最简单,最干净的方式!

bla*_*bla 7

使用kron- Kronecker张量产品:

kron(a,ones(2))


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