Subsetting a rectengular matrix

1 vue (au cours des 30 derniers jours)
Raisul Islam
Raisul Islam le 8 Juil 2018
Commenté : Raisul Islam le 8 Juil 2018
I am have a 5139 x 30 matrix.
I want to split this into 39 subsets.
How can I do this in a for loop condition in MATLAB? Think like this. First subset having 132 rows all columns. The second subset having 132+132 rows all columns, the third subset having 133+132+132 rows all columns. This will go on until 5139 rows is reached. This is how I need this actually.
Thank you.

Réponse acceptée

Walter Roberson
Walter Roberson le 8 Juil 2018
What you asked for will not fit. There is only enough data for each block to have 131, with 9 left over that could be distributed
N = 39;
R = size(YourMatrix,1);
pos = floor(linspace(1,R,N+1));
pos(end) = R+1;
sizes = diff(pos);
subsets = mat2cell(YourMatrix, sizes, size(YourMatrix,2));
  1 commentaire
Raisul Islam
Raisul Islam le 8 Juil 2018
Remarkable....thank you

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by