Cree ventanas deslizantes superpuestas y no superpuestas en MATLAB

Estoy tratando de crear bloques de datos superpuestos y no superpuestos a partir de una matrizData que contieneN elementos. ¿Cómo puedo formar correctamente sub-matrices deData para cualquierN y cualquierblksze? El siguiente código es para errores de lanzamiento de bloques no superpuestos debido a la cantidad de elementos que se exceden al crear subbloques. Por ejemplo, dejemosData = [1,2,3,4,5,6], luego

para casos superpuestos debería obtener: tamaño de bloqueblksze = 2, Obtendríablock1 = [1,2], block2 = [2,3], block3 = [3,4], block4 = [4,5], block5 = [5,6]

para no superposición: tamaño de bloqueblksze = 2, Obtendríablock1 = [1,2], block2 = [3,4], block3 = [5,6]

Fragmento de código
N= 100;
n = 4;
Data = randi([1 n],1,N);
blksze = 10;
Nblocks = N / blksze;
counter = 1;
for i = 1 : Nblocks
    block{i} = Data(counter : counter + blksze - 1);
    counter = blksze + 1;
end

Respuestas a la pregunta(1)

Su respuesta a la pregunta