Matriz dividida com base no número na primeira coluna

Eu tenho uma matriz que tem o seguinte formato:

M = 
[1 4 56 1;
 1 3 5  1;
 1 3 6  4;
 2 3 5  0;
 2 0 0  0;
 3 1 2  3;
 3 3 3  3]

Eu quero dividir essa matriz com base no número dado na primeira coluna. Então eu quero dividir a matriz nisso:

A = 
[1 4 56 1;
 1 3 5  1;
 1 3 6  4]

B = 
[2 3 5  0;
 2 0 0  0]

C =
[3 1 2  3;
 3 3 3  3]

Eu tentei isso fazendo o seguinte loop, mas isso me deu as matrizes desejadas com linhas de zeros:

for i = 1:length(M)
    if (M(i,1) == 1)
        A(i,:) = M(i,:);
    elseif (M(i,1) == 2)
        B(i,:) = M(i,:);
    elseif (M(i,1) == 3)
        C(i,:) = M(i,:);
    end
end

O resultado para a matriz C é então, por exemplo:

C = 
[0 0 0 0;
 0 0 0 0;
 0 0 0 0;
 2 3 5 0;
 2 0 0 0]

Como devo resolver esse problema?

Informação adicional:
Os dados reais têm uma data na primeira coluna no formulárioyyyymmdd. O conjunto de dados abrange vários anos e quero dividir esse conjunto de dados em matrizes para cada ano e depois para cada mês.

questionAnswers(2)

yourAnswerToTheQuestion