我使用函数reshape()
来帮助将尺寸从3D矩阵更改为2D矩阵。例如:
a = [1 2; 3 4];
b = [5 6; 7 8];
c = cat(3,a,b);
此处c
是具有3维的矩阵。我使用reshape
来改变它:
[n,m,d] = size(c);
d = reshape(c, [n*m , d]);
d
的大小为4x2。
完成此操作后,如何从c
返回d
?我想知道的是reshape
函数的反函数。
谢谢。
答案 0 :(得分:1)
我认为问题是你将数组d
的深度覆盖为重构数组。尝试:
[n,m,p] = size(c);
d = reshape(c, [n*m , p]);
reshape(d,[n m p])
结果:
ans(:,:,1) =
1 2
3 4
ans(:,:,2) =
5 6
7 8
答案 1 :(得分:1)
稍微修改您的注释(您有2 d
):
a = [1 2; 3 4];
b = [5 6; 7 8];
c = cat(3,a,b);
[n,m,d] = size(c);
dd = reshape(c, [n*m , d]);
cc = reshape(dd, [n, m , d]);
您可以检查cc
是否等于c
。