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.