如何加倍矩阵的大小和它的传播在Matlab中的元素?(How to double the size

2019-07-18 21:43发布

假设我有这样一个矩阵:

a = 
    1    2
    3    4

我要加倍矩阵的大小并创建这样的:

aa = 
     1    1    2    2
     1    1    2    2
     3    3    4    4
     3    3    4    4

以这种方式,在第一矩阵中的每个元件传播到在更大的矩阵四个元素。

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)

有没有预定义的功能做到这一点?

肯定我能做到这一点的两个循环,但我想最简单,最干净的方式!

Answer 1:

使用kron -克罗内克张量积:

kron(a,ones(2))


ans =
 1     1     2     2
 1     1     2     2
 3     3     4     4
 3     3     4     4


文章来源: How to double the size of a matrix and propagate its elements in Matlab?