matlab扩展了带有重复条目的矩阵

时间:2014-08-22 15:02:04

标签: matlab matrix

我想将3D矩阵的大小扩展N倍。

以N = 3,

为例进行2D示例
[1 2; 
 3 4]  

应该转换为

[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 ]

非常感谢。

虽然示例是2D,但我真正需要的是3D矩阵的解决方案。函数kron()不适用于3D。

1 个答案:

答案 0 :(得分:4)

2D案例

您可以使用kron

kron(A, ones(N,N))

或使用索引:

A(ceil(1/N:1/N:end), ceil(1/N:1/N:end))

3D案例

kron不适用于3D,但索引会起作用:

A = cat(3, [1 2; 3 4], [10 20; 30 40]);
A(ceil(1/N:1/N:end), ceil(1/N:1/N:end), ceil(1/N:1/N:end))

当然,您可以在每个维度上使用不同的“N”值,例如N1N2N3

A(ceil(1/N1:1/N1:end), ceil(1/N2:1/N2:end), ceil(1/N3:1/N3:end))