Split Table at certain rows with for loop

조회 수: 3 (최근 30일)
JessHmann
JessHmann 2019년 5월 23일
댓글: Mandeep Kaur 2021년 9월 16일
Hello,
I am trying to split my table at ceratin rows. I have several Data sets, so the row numbers are not always the same. I have stored the rows where the table should split in an array. If, for example, my array is [500 900 1200], then I want the table to be split as following:
T1=row 1-499
T2=row 500-899
T3=row 900-1199
T4=row 1200-end
I have tried doing this with a for loop for the middle section (T2, T3) but this returns the table together and not split. Any ideas? :)
% array with the rows where the table should be split is Split_Rows
for a=length(Split_Rows)-1
k=Split_Rows;
SplitTable=FlowData([k:k(a+1)-1],:);
end
  댓글 수: 2
Stephen23
Stephen23 2019년 5월 23일
Using numbered variables is a sign that you are doing something wrong.
Rather than using numbered variables, you should use simple and efficient indexing, exactly as madhan ravi's answer shows.
JessHmann
JessHmann 2019년 5월 23일
편집: JessHmann 2019년 5월 23일
Okay, thank you for the tipp!

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

채택된 답변

madhan ravi
madhan ravi 2019년 5월 23일
v=[1 500 900 1200];
% ^--appended 1 at the beginning
Splittable=cell(numel(v)-1,1);
for k=2:numel(v)
Splittable{k-1}=T(v(k-1):v(k)-1,:);
end
Splittable{k}=T(v(end):end,:) % where T is your table
  댓글 수: 4
madhan ravi
madhan ravi 2019년 5월 23일
Don't try to name your variable dynamically!! Keep them as is (cell array) you can access them via loop.
Mandeep Kaur
Mandeep Kaur 2021년 9월 16일
How we can write the new table after spilitting it??
Thank you

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

추가 답변 (0개)

카테고리

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

태그

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by