如何在matlab中将立方体重塑为一个矩阵

时间:2014-04-13 19:11:54

标签: matlab reshape

我有一个m乘以n的立方米,这意味着我有k个矩阵m乘n。我想将其重塑为一个大矩阵,例如p行和q列(将每个m乘以n矩阵作为元素)。
我怎样才能做到这一点?我可以使用重塑功能吗?例如,这些矩阵放在一起形成一个立方体:

1 1 , 2 2 , 3 3 , ... , 16 16
1 1   2 2   3 3         16 16
在上面的例子中,

,k = 16,m = n = 2 我想像这样重塑它们:

1 1 5 5 9  9  13 13
1 1 5 5 9  9  13 13
2 2 6 6 10 10 14 14
2 2 6 6 10 10 14 14
3 3 7 7 11 11 15 15
3 3 7 7 11 11 15 15
4 4 8 8 12 12 16 16
4 4 8 8 12 12 16 16

1 个答案:

答案 0 :(得分:2)

假设您的输入是n×n乘k * k矩阵,您可以使用以下方法实现所需的输入:

n=2
k=4
reshape(permute(reshape(M,n,n,k,k),[1,3,2,4]),n*k,n*k);

内部整形分解成n乘以k乘k,直接表示块。

置换交换尺寸以使重塑(...,n * k,n * k)产生预期结果。