How could I cut a matrix into subgroups?

How could I cut a matrix into several small groups according to the 1st column, and I don't know how many subgroups I may get and the size of the subgroups are not the same(rows).
Say I have a matrix,
1 23 34
1 2 3
3 45 76
3 5 66
3 2 7
3 23 32
4 2 2
4 5 27
4 1 0 ....
And finally, I would like to get :
1 23 34
1 2 3
and
3 45 76
3 5 66
3 2 7
3 23 32
and
4 2 2
4 5 27
4 1 0
and ...
How could I do that? Thanks in advance!

 채택된 답변

Sean de Wolski
Sean de Wolski 2011년 6월 9일

0 개 추천

[sz] = histc(X(:,1),unique(X(:,1))); %X is your matrix
C = mat2cell(X,sz,size(X,2)) %each cell will contain one matrix
This is tuned to work assuming column one is sorted if it's not:
X = sortrows(X,1);

추가 답변 (1개)

Matt Fig
Matt Fig 2011년 6월 9일

0 개 추천

A = round(rand(10,4));
B = mat2cell(A,[2 3 4 1],[2 2])

카테고리

도움말 센터File Exchange에서 Sparse Matrices에 대해 자세히 알아보기

질문:

Zoe
2011년 6월 9일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by