最近在把Matlab的toolbox转到Python语言,涉及到了很多矩阵运算,经常会用到Matlab中的reshape函数,但是Python和它reshape的结果总不一致,导致我最后Python画出来的图十分怪异。
其中我发现想让三维数组reshape到二维数组的结果和Matlab一致,只需要
# 假设a是一个数组
a = a.transpose(1,2,0)
b = numpy.reshape(a,[x,x],order = 'F')
上面transpose中的‘0,1,2’分别代表了维度,[]对应0,[[]]对应1,[[[]]]对应2
MATLAB代码如下:
b = reshape(a,x,x)
以上两个b的结果一致。