将 NxNxM 数组重塑为 MxNxN

Reshape NxNxM array to MxNxN

我有一个包含 25000 张尺寸为 128x128 的图像的数组。我希望它的大小为 25000x128x128 而不是 128x128x25000。在 Matlab 中重塑它:

data_reshaped = reshape(data, 25000, 128, 128)

其中 data 的尺寸为 128x128x25000。但是,当我尝试使用 imshow(squeeze(data_reshaped(1,:,:))) 可视化 data_reshaped 中的其中一张图像时,我得到了一张 损坏的 图像。

您将要执行的操作 "change the shape" 误认为函数名称 reshape。你想要的是改变尺寸的顺序,保持形状。

data_reshaped = permute(data,[3 2 1]);

可能是您寻求的解决方案,否则请尝试

data_reshaped = permute(data,[3 1 2]);