Loop through Matrix, to create multiple matrices from every nth row
1 view (last 30 days)
Show older comments
Hi.
I have a very large matrix (1600x19). Call this matrix A.
I want to create new matrices from this, t(i), and save them as new matrices.
I want the first new matrix to be contructed from rows 1, 17, 33, 49 etc... so for this, by my reckoning, I would write t1=A(1:16:end,:). Then the next matrix to consist of row 2, 18, 34, 50 etc.. And so on.
I would like to create a loop that would create 16 matrices this way.
I have started with
while i<17
t(i)=A(i:16:end,:)
end
I'm aware this is lacking something, just don't know what!! Any help is much appreciated, especially if there's some explanation of the logic. New to looping :)
0 Comments
Accepted Answer
Sean de Wolski
on 15 Sep 2014
Edited: Sean de Wolski
on 15 Sep 2014
What do you want to do with these matrices? Often, for this I would suggest crating a 16x19xp array where each slice in the third dimension is the sub arrays you want. Then you can work on those slices as necessary:
x = rand(1600,19);
x3d = permute(reshape(x.',19,[],16),[3 1 2]);
Will build the three d matrix. Now for the 17th "sub array"
x3d(:,:,17)
1 Comment
More Answers (0)
See Also
Categories
Find more on Resizing and Reshaping 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!