我有一个大小为 4D 的图像60 x 80 x 12 x 350
,即它是一个 3D 图像,其中每个体素都有一个时间序列(350 个)。
现在我想使用mat2cell
将 3D 图像划分为维度的立方体k*k*k
。立方体中的每个体素都是大小为 350(时间序列)的向量。
我想我可以做到,mat2cell
但我不知道具体如何。每个单元最后都应包含图像的 3D 块,其中块的每个体素都是大小为 350 的向量。
假设您的 4D 矩阵被称为M
. 您需要有元素总和为size(M, i)
where的向量i = 1:4
。假设k
有一些价值,我尝试了 4(因为它是您指定的尺寸的公因子)和 3(因为它不是)。
k = 3;
MPrime = mat2cell(M, ...
[k*ones(1, floor(size(M,1)/k)), mod(size(M,1), k)], ...
[k*ones(1, floor(size(M,2)/k)), mod(size(M,2), k)], ...
[k*ones(1, floor(size(M,3)/k)), mod(size(M,3), k)], ...
ones(1, size(M,4)));