我有一个大小为100 x 1的单元格数组IMAGES
,其中每个条目IMAGES{i}
是一个大小为32 x 32的二维数组。我想在Python中加载它,以便加载的变量x
有x.shape
返回(100L,32L,32L)
。
现在我写了以下代码:
imgMat = loadmat('IMAGES_DS.mat', matlab_compatible = True)
Test = imgMat ['IMAGES']
print(Test.shape[0], 'test samples')
答案 0 :(得分:0)
首先,您应该将squeeze_me
参数用于loadmat
而不是matlab_compatible
参数。这将删除IMAGES
中的单个维度,使其形状为(100,)
而不是(100, 1)
。
然后你应该做Test = np.dstack(Test)
,它在深度维度(维度2)的IMAGES中组合各个32x32数组,这将产生(32, 32, 100)
数组。
如果您真的需要它作为(100, 32, 32)
数组,那么您可以Test = np.rollaxis(Test, 2, 0)
将第二维(最后一维)移动到第0维。