extract submatrix from a large matrix using loop

1 view (last 30 days)
Dear friends, I have a matrix 1140 by 330. I have to split the matrix into 60 matrices with the size of 19*330 using a for loop. does any one know how to do that?

Accepted Answer

Matt J
Matt J on 18 Jul 2016
You can use MAT2TILES ( Download ). For example,
A=rand(1140,330);
C=mat2tiles(A,[19,330]);
  2 Comments
Sophi gra
Sophi gra on 18 Jul 2016
Edited: Sophi gra on 18 Jul 2016
if i want to calculate the correlation coefficient, does it calculate it seperately? I use corrcoef(C), and I got error!

Sign in to comment.

More Answers (2)

Andrei Bobrov
Andrei Bobrov on 18 Jul 2016
A=rand(1140,330);
out = permute(reshape(A',size(A,2),60,[]),[2,1,3]);

Guillaume
Guillaume on 18 Jul 2016
m = rand(1140, 330); %demo matrix
splitm = mat2cell(m, ones(1, 60) * 19, 330)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!