Supondo que temos uma matriz M de tamanho N^2 x N^2 elementos (por exemplo, 9x9), qual é a maneira mais rápida de dividi-la em segmentos de 3x3 (cada um com 3x3 elementos)?
Uma maneira que me vem à mente é a seguinte:
M = magic(9);
N = 3;
m = mat2cell(M, N * ones(1, size(M, 1) / N), ...
N * ones(1, size(M, 2) / N));
Eu, no entanto, não prefiro o uso de células. Fiquei curioso para saber se há uma maneira de dividir a matriz e armazenar os segmentos na forma de uma matriz 3D usando uma indexação de coluna principal para os segmentos (por exemplo, o primeiro segmento m{1} se torna m(:, :, 1) e o segundo segmento m{2} se torna m(:, :, 2), e assim por diante).