在matlab中重复矩阵

时间:2017-09-04 19:11:54

标签: matlab

我有一个方阵,用n表示n;我想将此矩阵扩展到n ^ 2乘以n ^ 2,以便重复位置中的值。 
例如矩阵是


 2 3 && xA; 5 6


&# xA;

我想生成矩阵B,以便





2 2 3 3

 2 2 3 3
&# xA; 5 5 6 6

 5 5 6 6





如何在matlab中完成?并且需要对任何方矩阵进行推广





附加问题:如果我想复制如下
 2 3 2 3

 5 6 5 6

 2 3 2 3

 5 6 5 6





如何归档?




2 个答案:

答案 0 :(得分:3)

您可以使用Kronecker张量产品:

B = kron(A,ones(n));

答案 1 :(得分:1)

让数据

M = [2 3; 5 6];   % initial matrix
v = 2;            % vertical repetition factor 
h = 3;            % horizontal repetition factor

除了使用@Omg's answer所示的 kron 外,您还可以使用索引

result = M(ceil(1/v:1/v:end), ceil(1/h:1/h:end));

或者,在最近的Matlab版本中,您可以使用 repelem

result = repelem(M, v, h);

以上任何一个都给出了

result =
     2     2     2     3     3     3
     2     2     2     3     3     3
     5     5     5     6     6     6
     5     5     5     6     6     6