How can I select n rows every m rows

조회 수: 5 (최근 30일)
QuanCCC
QuanCCC 2018년 8월 22일
댓글: QuanCCC 2018년 8월 23일
It's a select several rows/extract rows in data question. My data looks like this:
a1 b1 c1
a2 b2 c2
a3 b3 c3
a10 b10 c10
a20 b20 c20
a30 b30 c30
a1 b1 c1
a2 b2 c2
a3 b3 c3
a10 b10 c10
a20 b20 c20
a30 b30 c30
a1 b1 c1
a2 b2 c2
a3 b3 c3
a10 b10 c10
a20 b20 c20
a30 b30 c30
I need to extract into a new data which only includes
a10 b10 c10
a20 b20 c20
a30 b30 c30
a10 b10 c10
a20 b20 c20
a30 b30 c30
a10 b10 c10
a20 b20 c20
a30 b30 c30
How can I do that? Thank you.

채택된 답변

Matt J
Matt J 2018년 8월 22일
편집: Matt J 2018년 8월 22일
This will work for any m,n.
m=3;
n=3;
e=1:size(yourdata,1);
idx=e( (m+n):(m+n):end ) - (n-1:-1:0).' ;
newdata = yourdata(idx,:);
  댓글 수: 1
QuanCCC
QuanCCC 2018년 8월 23일
This is perfect. Thank you so much.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Matt J
Matt J 2018년 8월 22일
편집: Matt J 2018년 8월 22일
One way is by downloading MAT2TILES,
A=mat2tiles(yourdata,[3,3]);
newdata=cell2mat(A(2:2:end));
  댓글 수: 1
QuanCCC
QuanCCC 2018년 8월 22일
Thank you Matt for editing my question. Now it looks better. But I just happened to give an example of every 3*3 subarray data. The actual data I have is: 27060 lines I don't need, then the next 12 lines I need to select, then the next 27060 lines I don't need, then the 12 lines I need. This doesn't sound like a sub-arrays.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by