# How can I make smaller matrices (size unknown) from a large matrix?

1 vue (au cours des 30 derniers jours)
John Hunt le 3 Oct 2017
Commenté : Cedric le 4 Oct 2017
I have a matrix that has 51 columns and 46999 rows. The 8th column has values 1 to 36. I want to create a matrix for each value in that column (36 total). I want to stack rows that have the same value to make these matrices.
Thus far I know can use a for loop to set up a matrix 36 times then I was trying to use a while loop to "stack" the rows that share the same value in the 8th column, but I can't get that while loop right. Any suggestions?
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
John Hunt le 4 Oct 2017
That worked awesome! Thank you, could you explain it a bit so I can understand a bit better whats going on please?

Connectez-vous pour commenter.

### Réponse acceptée

James Tursa le 3 Oct 2017
result = cellfun(@(x)M(M(:,8)==x,:),num2cell(1:36),'uni',false);
##### 8 commentairesAfficher 6 commentaires plus anciensMasquer 6 commentaires plus anciens
Jan le 4 Oct 2017
+1 for both of you.
@Cedric: Now you know the reason, why I "boost" sometimes. It is for the cases, where the standard voting system is to rough. :-)
Cedric le 4 Oct 2017
:-)
It has already been proposed, but I really think that allowing voting for comment would help. This would lead people to add much more value to others' answers by taking time to write well developed comments.

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Historical Contests dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by