How can I extract multiple rows from an array at regular intervals?
조회 수: 1 (최근 30일)
이전 댓글 표시
If I have a simple 72x10 array, how can I make a new array that is made up of the first 6 rows, then miss the next 6, then take the next 6 etc. to the end.
If the main array was A, I know B = A(1:6:end,:)would extract me every 6th row for example, but I want to take a 6-row selection of rows. Output B should be 36x10 (i.e. halved in row length)
댓글 수: 0
채택된 답변
Adam Danz
2023년 8월 11일
Create demo matrix A
A = (1:72)'.*ones(1,10)
size(A)
Extract rows 1:6, 13:18, ...
q = 6;
idxMat = reshape(1:q*floor(height(A)/q),q,[]);
idx = idxMat(:,[1:2:end]);
B = A(idx,:)
size(B)
댓글 수: 0
추가 답변 (1개)
Bruno Luong
2023년 8월 11일
이동: Adam Danz
2023년 8월 11일
No need for reshape and repmat, etc...
A = reshape(1:720, 72, 10);
B = A((0:12:66) + (1:6)', :) % 66 is size(A,1)-6
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!