Разделить матрицу на основе числа в первом столбце
У меня есть матрица, которая имеет следующую форму:
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
, Набор данных охватывает несколько лет, и я хочу разделить этот набор данных в матрицах для каждого года и после этого для каждого месяца.