필터 지우기
필터 지우기

Loop through Matrix, to create multiple matrices from every nth row

조회 수: 1 (최근 30일)
Mat
Mat 2014년 9월 15일
댓글: Andrei Bobrov 2014년 9월 15일
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 :)

채택된 답변

Sean de Wolski
Sean de Wolski 2014년 9월 15일
편집: Sean de Wolski 2014년 9월 15일
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)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by