一些操作后如何将矩阵重新连接成小矩阵?

How to re-concatenate a matrix into small matrices after some operations?

以元胞数组 A {1x100} 为例。 A中的每个单元格是一个图像Mx5000。 例如A{1,1} 是 420x5000, A{1,2} 是 400x5000,.... A{1,100} 是 700x5 000.

当我垂直连接所有单元格时,我得到一个 Nx5000 MATRIX B。 做了一个操作后,5000 减少到 20。所以,我有图像 Mx20

现在,我如何将新的 Nx20 MATRIX B 重新连接到大小为初始元胞数组的元胞数组中,例如B{1,1} 为 420x20, B{1,2} 为 400x20,... B{1,100} 为 700x20

设变量 vertSizes 为包含 A 中所有元素的垂直大小的 1x100 向量。变量 C 将是包含 B 中所有矩阵的新单元格。以下代码应该适用于该作业。

vertSizes = [0, vertSizes];
for i = 1 : length(vertSizes) - 1
   previousPos = sum(vertSizes(1:i));
   newPos = previousPos  + vertSizes(i+1);
   C{1,i} = B(previousPos+1:newPos, :)
end