I have a List<List<Int>> in Kotlin of size 1104 x 828.
I want to split it into subgrids of size 6 x 12, of which there would be:
(1104 / 6) x (828 / 12) = 184 x 69
So, in essence, I need a List<List<List<List<Int>>>> of size 184 x 69 x 6 x 12.
Is there any easy way to to do this using chunking? I can easily get it to 184 x 6 x 69 x 12 by calling:
list.map { it.chunked(12) }.chunked(6)
but, of course, that's not the right dimensions.
If I have to, I'll use looping to make the 6 x 12 subgrids, but I was hoping that there was a way to get the list to the proper shape by just using chunking and perhaps mapping or some other list operations.
The goal is to perform a reduction on the 6 x 12 subgrids to end up with a 184 x 69 grid, so maybe there's an easier way to do this that I'm not seeing.
I finally figured out the answer thanks to lukas.j's response. Here is a function that takes a grid
List<List<T>>with asubgridHeightandsubgridWidthand partitions the grid into rows and columns of the specified height and width. I believe it can probably be made to work even if thesubgridHeightandsubgridWidthdon't evenly divide the grid by passingpartialWindows=trueto the call towindowed.It's working fine for me.