Subsetting a rectengular matrix

1 view (last 30 days)
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.

Accepted Answer

Walter Roberson
Walter Roberson on 8 Jul 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));

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!