Разделить матрицу на основе числа в первом столбце

У меня есть матрица, которая имеет следующую форму:

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]

Я хочу разделить эту матрицу на основе числа, указанного в первом столбце. Итак, я хочу разбить матрицу на это:

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]

Я попытался сделать это, выполнив следующий цикл, но это дало мне нужные матрицы с рядами нулей:

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

Например, результат для матрицы C:

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

Как мне решить эту проблему?

Дополнительная информация:

Фактические данные имеют дату в первом столбце в формеyyyymmdd, Набор данных охватывает несколько лет, и я хочу разделить этот набор данных в матрицах для каждого года и после этого для каждого месяца.

Ответы на вопрос(2)

Ваш ответ на вопрос