Я предполагаю, что желаемый результат представляет собой массив ячеек (под) матриц:
B = mat2cell(A, diff([0; find([diff(A(:,end)); 1])]), size(A,2));
Для вашего примера A
это дает
>> celldisp(B)
B{1} =
2 3 6 2 2
5 3 5 6 2
4 5 6 5 2
B{2} =
6 4 3 2 0
2 3 6 2 0
5 3 5 6 0
B{3} =
4 5 6 5 2
6 4 3 2 2
2 3 6 2 2
5 3 5 6 2