将 4D 阵列图像数据划分为单元格

Dividing a 4D array image data into cells

我有 22000 个细胞核图像,我已将其存储为 4D 数据。每张图像的尺寸为 27 x 27 x 3,它们以 [27 27 3 22000]

的形式存储在 nuclei4DArrayData 中

现在我想将这个 4D 数组拆分成单元格,这样我就有了 1x22000 单元格数组,其中每个单元格都有 27x27x3 图像数据矩阵。

我尝试过使用 mat2cell、num2cell,但我无法获取尺寸参数以按我需要的方式拆分它。 我可以使用 for 循环手动将每个图像分配给元胞数组,但是,是否有任何直接方法或无法使用 mat2cell 函数。只是想知道是否可以使用 MATLAB 函数。

之后的函数num2cell should work for this, along with a call to reshape。从名为 data:

的矩阵中的数据开始
cellData = reshape(num2cell(data, 1:3), 1, []);

这也行,而且我觉得可读性稍微好一点。我测试了它,运行.

花费的时间完全相同
 data = zeros(27, 27, 3, 22000);
 cellData = squeeze(num2cell(data, 1:3));

squeeze 函数删除单例维度。我测试了它的运行ning时间,和整形一样。